MySQL 8.4 changes and pre-upgrade checklist for engine upgrades
The MySQL 8.0 series reached its official End of Life (EOL) at the end of April, and security updates and technical support are expected to end going forward. To strengthen service stability and security, KakaoCloud recommends upgrading the engine to MySQL LTS (Long Term Support) 8.4, and supports MySQL Engine Update work through the Maintenance service.
All instance groups currently using the MySQL 8.0 engine can upgrade their engine to version 8.4 by specifying the desired date and time directly. However, because this is a major version update, technical review such as backward compatibility and system variable changes must be performed before the actual work.
Therefore, in this post, we share the major changes and key checklist items that must be reviewed for stable service operation before updating from MySQL 8.0 to the 8.4 series.
Major changes in the MySQL 8.4 series
The 8.4 LTS version includes various default value changes and feature improvements for performance optimization and stronger security.
1. Default authentication plugin changed
The previously used mysql-native-password has been removed, and caching_sha2_password has been set as the default authentication plugin (password plugin).
If you need to keep another authentication method or require additional settings, adjust parameters by referring to the official authentication_policy documentation.
2. Parameter default value changes
The table below is excerpted and translated from the official MySQL documentation. In the 8.4 LTS version, default values for major parameters have been significantly changed to maximize system performance.
In particular, resource allocation methods such as InnoDB I/O capacity and log buffer size have been optimized for modern hardware specifications, so be sure to compare them with existing settings before upgrading. For detailed instructions on creating and managing parameter groups, see the separate documentation.
Performance and I/O related changes
| Parameter | MySQL 8.4 | MySQL 8.0 |
|---|---|---|
innodb_io_capacity | 10000 | 200 |
innodb_io_capacity_max | 2x innodb_io_capacity | Same (minimum default 2000) |
innodb_flush_method (Linux) | O_DIRECT (fsync if unsupported) | fsync |
innodb_use_fdatasync | ON | OFF |
innodb_read_io_threads | 1/2 of logical processors (minimum 4) | 4 |
innodb_parallel_read_threads | 1/8 of logical processors (minimum 4) | 4 |
Memory and buffer management
| Parameter | MySQL 8.4 | MySQL 8.0 |
|---|---|---|
innodb_buffer_pool_instances | innodb_buffer_pool_size 1 GiB or less → 1Over 1 GiB → Automatic calculation based on CPU/chunk (1~64) | 8 (1 if less than 1 GiB) |
innodb_log_buffer_size | 64 MiB (67,108,864) | 16 MiB (16,777,216) |
innodb_buffer_pool_in_core_file | OFF if MADV_DONTDUMP is supported; otherwise ON | ON |
innodb_numa_interleave | ON | OFF |
InnoDB behavior changes
| Parameter | MySQL 8.4 | MySQL 8.0 |
|---|---|---|
innodb_change_buffering | none (not used) | all |
innodb_adaptive_hash_index | OFF | ON |
innodb_page_cleaners | Same as innodb_buffer_pool_instances | 4 |
innodb_purge_threads | Logical processors ≤ 16 → 1 Over 16 → 4 | 4 |
Doublewrite and log handling
| Parameter | MySQL 8.4 | MySQL 8.0 |
|---|---|---|
innodb_doublewrite_files | 2 | 2x innodb_buffer_pool_instances |
innodb_doublewrite_pages | 128 | innodb_write_io_threads value (default 4) |
Automation and server settings
| Parameter | MySQL 8.4 | MySQL 8.0 |
|---|---|---|
--innodb-dedicated-server | When enabled, no flush_method changeRedo log capacity calculation method changed from memory-based to CPU-based | OFF |
TempTable behavior changes
| Parameter | MySQL 8.4 | MySQL 8.0 |
|---|---|---|
temptable_max_ram | 3% of total memory (automatically adjusted within 1~4 GiB) | 1 GiB (1,073,741,824) |
temptable_max_mmap | 0 (not used) | 1 GiB |
temptable_use_mmap | OFF | ON |
3. Automatic histogram update feature added
An automatic histogram update feature for query optimization has been added.
In previous versions, histograms had to be updated manually through ANALYZE TABLE, but starting with MySQL 8.4, they are updated automatically depending on conditions.
For detailed application methods, see the ANALYZE TABLE documentation.
4. Replication SQL syntax changed
Replication-related terms have changed from MASTER/SLAVE to SOURCE/REPLICA, and major SQL syntax has changed as follows.
| MySQL 8.4 | MySQL 8.0 | Function |
|---|---|---|
SHOW BINARY LOG STATUS | SHOW MASTER STATUS | Binary log position that is the current server's start position (file name, position) |
SHOW BINARY LOGS | SHOW MASTER LOGS | List of binary log files in the server |
SHOW REPLICA STATUS | SHOW SLAVE STATUS | Detailed replication status (IO/SQL threads, delay, and more) |
SHOW REPLICAS | SHOW SLAVE HOSTS | List of replicas connected to the current server |
Required checklist for a stable upgrade
To prevent server, authentication, and application-related failures that may occur during the upgrade process, be sure to check the following items in advance.
1. MySQL Shell Upgrade Checker
Before upgrading, it is important to use the MySQL Shell utility to carefully review resource compatibility. This tool automatically analyzes the following items and diagnoses stability.
- Check server settings and schema structure
- Check compatibility of running SQL queries
- Detect removed features and conflicts with new reserved words
Through these checks, deprecated options and similar items can be identified in advance, effectively preventing server startup failures or unexpected feature errors that may occur immediately after the upgrade.
2. Check authentication plugin compatibility
When upgrading the MySQL version, the database's default authentication method may change, so authentication plugin compatibility in the current application environment must be checked. In older environments that do not support the latest plugins, login failures may occur immediately after the upgrade.
In particular, check whether the environment supports the latest plugins such as caching_sha2_password. If unsupported, login itself may fail, so you must check the authentication plugin for user accounts in advance and determine whether driver upgrades or plugin changes are needed.
3. Pre-check MySQL Connector (driver)
You must check compatibility between the MySQL connector used by the application and the server version in advance.
Language-specific drivers such as MySQL Connector/J are affected by server version in terms of authentication, protocol, and option compatibility. If old drivers are used, issues such as connection failures, TLS errors, or abnormal query behavior can occur, so driver compatibility must be checked in advance and replaced with the latest version if necessary.
So far, we have reviewed the need to upgrade to MySQL 8.4 LTS following the end of support for MySQL 8.0, the major changes, and the required checklist for a successful transition.
A major version upgrade is more than a simple engine replacement. It is an important opportunity to maximize modern hardware performance and strengthen the security system. However, because there are significant technical changes such as authentication method and driver compatibility, we recommend carefully reviewing them using the MySQL Shell Upgrade Checker and the pre-check guide introduced above.
KakaoCloud is working to provide the optimal environment and technical support so that customers' databases can operate stably without interruption. We hope this post helps you operate services safely. If you have any questions or need support, please contact us anytime through the Helpdesk.
Thank you.

