Skip to main content

MySQL 8.4 changes and pre-upgrade checklist for engine upgrades

· 7 min read
Kate (김소희)
Service Manager
MySQL

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).

note

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

ParameterMySQL 8.4MySQL 8.0
innodb_io_capacity10000200
innodb_io_capacity_max2x innodb_io_capacity    Same (minimum default 2000)
innodb_flush_method (Linux)O_DIRECT (fsync if unsupported)fsync
innodb_use_fdatasyncONOFF
innodb_read_io_threads1/2 of logical processors (minimum 4)4
innodb_parallel_read_threads1/8 of logical processors (minimum 4)4

Memory and buffer management

ParameterMySQL 8.4MySQL 8.0
innodb_buffer_pool_instancesinnodb_buffer_pool_size 1 GiB or less1
Over 1 GiB → Automatic calculation based on CPU/chunk (1~64)    
8 (1 if less than 1 GiB)
innodb_log_buffer_size64 MiB (67,108,864)16 MiB (16,777,216)
innodb_buffer_pool_in_core_fileOFF if MADV_DONTDUMP is supported; otherwise ONON
innodb_numa_interleaveONOFF

InnoDB behavior changes

ParameterMySQL 8.4MySQL 8.0
innodb_change_bufferingnone (not used)all
innodb_adaptive_hash_indexOFFON
innodb_page_cleanersSame as innodb_buffer_pool_instances    4
innodb_purge_threadsLogical processors ≤ 16 → 1
Over 16 → 4
4

Doublewrite and log handling

ParameterMySQL 8.4MySQL 8.0
innodb_doublewrite_files22x innodb_buffer_pool_instances
innodb_doublewrite_pages128      innodb_write_io_threads value (default 4)

Automation and server settings

ParameterMySQL 8.4MySQL 8.0
--innodb-dedicated-serverWhen enabled, no flush_method change
Redo log capacity calculation method changed from memory-based to CPU-based    
OFF

TempTable behavior changes

ParameterMySQL 8.4MySQL 8.0
temptable_max_ram3% of total memory (automatically adjusted within 1~4 GiB)    1 GiB (1,073,741,824)
temptable_max_mmap0 (not used)1 GiB
temptable_use_mmapOFFON

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.4MySQL 8.0Function
SHOW BINARY LOG STATUSSHOW MASTER STATUSBinary log position that is the current server's start position (file name, position)
SHOW BINARY LOGSSHOW MASTER LOGSList of binary log files in the server
SHOW REPLICA STATUSSHOW SLAVE STATUSDetailed replication status (IO/SQL threads, delay, and more)
SHOW REPLICASSHOW SLAVE HOSTSList 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.