What’s New in MySQL 8.4? Key Feature Changes and Default Settings Explained
This article summarizes the major changes introduced in MySQL 8.4, including updated InnoDB parameters, revised default values, new cloning plugin rules, Windows SASL‑based LDAP authentication, and adjustments to replication settings, helping developers and DBAs optimize their database configurations.
MySQL 8.4 has been officially released, and Oracle provides a complete set of documentation at
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/mysql-nutshell.html.
Modified MySQL Features
Buffer Pool Hint : Calculated as innodb_buffer_pool_size / innodb_buffer_pool_chunk_size multiplied by 1/2.
CPU Hint : Set to one‑quarter of the number of available logical processors.
Cloning Plugin : Version‑control requirements are relaxed; only major and minor version numbers must match, allowing clones between different point releases (e.g., 8.4.0 ↔ 8.4.14).
Windows SASL‑based LDAP Authentication : A server plugin now supports SASL‑based LDAP authentication on Windows, enabling GSSAPI/Kerberos for the authentication_ldap_sasl_client plugin.
MySQL Replication : The default for SOURCE_RETRY_COUNT has been changed to 10, and SOURCE_CONNECT_RETRY defaults to 60 seconds.
Adjusted Default Values
Compared with MySQL 8.0, Oracle has updated many InnoDB defaults to better match modern hardware. For example, innodb_io_capacity is now 10 000 (suitable for SSDs) instead of 200.
MySQL’s native password authentication plugin is disabled by default in 8.4.0; to enable it, start the server with --mysql-native-password=ON or add mysql_native_password=ON to the [mysqld] section of my.cnf.
InnoDB System Variables – New Defaults vs. Old Defaults
InnoDB System Variable
New Default
Old Default
innodb_buffer_pool_in_core_file
OFF if MADV_DONTDUMP is supported, otherwise ON
ON
innodb_buffer_pool_instances
1 if innodb_buffer_pool_size ≤ 1 GiB; otherwise the minimum of the two calculated hints (range 1‑64)
8 (1 if size ≤ 1 GiB)
innodb_change_buffering
none
all
innodb_dedicated_server
ON (changes innodb_flush_method and makes innodb_redo_log_capacity CPU‑based)
OFF
innodb_adaptive_hash_index
OFF
ON
innodb_doublewrite_files
2 innodb_buffer_pool_instances * 2 innodb_doublewrite_pages
128
value of innodb_write_io_threads (default 4)
innodb_flush_method (Linux)
O_DIRECT if supported, otherwise fsync
sync
innodb_io_capacity
10000
200
innodb_io_capacity_max
2 * innodb_io_capacity
2 * innodb_io_capacity (minimum 2000)
innodb_log_buffer_size
67108864 (64 MiB)
16777216 (16 MiB)
innodb_numa_interleave
ON
OFF
innodb_page_cleaners
innodb_buffer_pool_instances
4
innodb_parallel_read_threads
available logical processors / 8 (minimum 4)
4
innodb_purge_threads
1 if logical processors ≤ 16, otherwise 4
4
innodb_read_io_threads
available logical processors / 2 (minimum 4)
4
innodb_use_fdatasync
ON
OFF
temptable_max_ram
3% of total memory (range 1‑4 GiB)
1 GiB
temptable_max_mmap
0 (means OFF)
1 GiB
temptable_use_mmap
OFF
ON
Conclusion
For local development, the conservative defaults can save resources, but production deployments often require manual tuning by DBAs or operations teams to achieve optimal performance. Oracle’s comprehensive updates aim to align defaults with modern hardware, simplifying configuration for most developers.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
21CTO
21CTO (21CTO.com) offers developers community, training, and services, making it your go‑to learning and service platform.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
