What is New in MySQL 8.4
MySQL 8.4 is a Long-Term Support (LTS) release that focuses on stronger security defaults, cleaner architecture, and improved stability for production environments. This version removes several deprecated features, updates default settings for better performance, and introduces new privileges and system variables to give administrators more precise control.
The changes help modernize the server while maintaining compatibility for most applications. Many updates target security hardening, replication cleanup, and better resource management in high-load scenarios.
Security and Authentication Improvements
Security receives significant attention in this release. The mysql_native_password authentication plugin is now disabled by default. You can still enable it using the new server option --mysql-native-password=ON or by adding it to your configuration file.
Support for weak encryption ciphers has been completely removed. Only TLS v1.2 or v1.3 with forward secrecy and strong algorithms (SHA2 + AES-GCM or AEAD) are allowed. This affects the system variables ssl_cipher, admin_ssl_cipher, tls_ciphersuites, and admin_tls_ciphersuites.
The deprecated SET_USER_ID privilege has been removed. Use SET_ANY_DEFINER and ALLOW_NONEXISTENT_DEFINER instead. Additionally, setting the gtid_executed variable now requires the new TRANSACTION_GTID_TAG privilege.
InnoDB Engine Changes
Several important InnoDB configuration defaults have been adjusted for better out-of-the-box performance and resource usage. These include changes to buffer pool settings, I/O capacity, log buffer size, page cleaners, and more. The --innodb-dedicated-server option also applies updated values.
Long-running rollbacks now generate clearer progress messages in the error log. Many bugs related to redo logging, full-text search, buffer handling, and Windows-specific issues have been resolved, improving overall reliability and performance.
These updates make InnoDB more efficient, especially on dedicated servers and modern hardware.
Replication and Group Replication Updates
Old replication syntax has been removed to encourage the use of modern terminology. Statements such as START SLAVE, STOP SLAVE, SHOW SLAVE STATUS, and related options have been dropped in favor of REPLICA and SOURCE equivalents.
Relay log recovery behavior has been improved with better sanitization of incomplete transactions when relay_log_recovery=OFF.
Group Replication Highlights
Default values changed for group_replication_consistency and group_replication_exit_state_action. New variables group_replication_preemptive_garbage_collection and group_replication_preemptive_garbage_collection_rows_threshold help manage memory usage in single-primary mode.
In-place downgrades and cross-version membership within the 8.4 series are now supported. Special handling for very old 8.0 members has been removed.
Optimizer and Performance Enhancements
The optimizer now supports automatic histogram updates. You can enable this by using AUTO UPDATE with the ANALYZE TABLE statement. Correlated scalar subqueries have more opportunities for transformation into derived tables when conditions are met.
Multi-range read (MRR) optimization has been tuned for better performance in certain workloads.
| Area | Key Improvement |
|---|---|
| Histograms | Automatic updates via ANALYZE TABLE with AUTO UPDATE |
| Subqueries | Improved transformation of correlated scalar subqueries |
| MRR | Better performance in multi-range reads |
New Privileges and Administration Features
Two new privileges have been introduced:
FLUSH_PRIVILEGES- required to executeFLUSH PRIVILEGESOPTIMIZE_LOCAL_TABLE- required forOPTIMIZE LOCAL TABLEandOPTIMIZE NO_WRITE_TO_BINLOG
Existing users with the RELOAD or SYSTEM_USER privilege receive these automatically during upgrade for backward compatibility.
The thread pool now includes thread_pool_longrun_trx_limit to help prevent long-running transactions from causing hanging connections when transaction limits are reached.
Removed Features and Upgrade Considerations
Several deprecated items have been removed, including:
- Old replication statements and variables using SLAVE/MASTER terminology
authentication_fidoplugins (use WebAuthn instead)- Legacy keyring file plugins (migrate to keyring components)
INFORMATION_SCHEMA.TABLESPACEStable- Support for
AUTO_INCREMENTon FLOAT/DOUBLE columns (alter tables before upgrading)
When upgrading to MySQL 8.4, review your authentication settings, replication scripts, and any use of removed plugins. Direct upgrades from MySQL 5.7 are not supported - you must first move to a recent 8.0 version.
These cleanups make the server more secure and easier to maintain over its long support lifetime.