8 Critical MySQL 8.4 Changes to Know Before Migrating

8 Critical MySQL 8.4 Changes to Know Before Migrating

MySQL 8.4 may seem like a routine update, but it carries significant breaking changes that developers and DBAs must review carefully before migrating production systems.

Mafiree
Mafiree
4 min read

MySQL 8.4 may seem like a routine update, but it carries significant breaking changes that developers and DBAs must review carefully before migrating production systems.

What is MySQL 8.4 LTS? 

MySQL 8.4 is Oracle's first Long-Term Support release under their new model. Unlike short-lived innovation releases (8.1, 8.2, 8.3), it is designed for enterprise stability and extended support, making it the primary upgrade target for teams on MySQL 8.0.

The 8 Key Changes:

1. Authentication Overhaul The mysql_native_password plugin has been completely removed. All users must now authenticate via caching_sha2_password or sha256_password. Applications and connectors must be updated to support modern auth methods before upgrading.

2. Replication Terminology The old MASTER/SLAVE terminology is fully replaced by SOURCE/REPLICA. All automation scripts, monitoring tools, and documentation that use the legacy terms must be updated accordingly.

3. AUTO_INCREMENT Restriction AUTO_INCREMENT on FLOAT or DOUBLE column types is no longer allowed. Schemas using these must be refactored to use INT or BIGINT instead.

4. Automatic Histogram Updates The ANALYZE TABLE command now supports an AUTO UPDATE option for histograms. This enables automatic query optimizer statistics updates without manual DBA intervention, improving query planning out of the box.

5. New FLUSH_PRIVILEGES Privilege A dedicated FLUSH_PRIVILEGES privilege has been introduced. Previously, only the broader RELOAD privilege was required. Users who need to flush privileges must now be explicitly granted this new, more granular permission — beneficial for multi-tenant environments.

6. InnoDB Default Changes Several InnoDB defaults have been adjusted for better out-of-the-box performance. Notable changes include: innodb_adaptive_hash_index is now OFF, innodb_flush_method defaults to O_DIRECT, innodb_io_capacity jumps from 200 to 10,000, innodb_log_buffer_size increases from 16MB to 64MB, and innodb_change_buffering is set to none instead of all.

7. mysqldump Enhancements A new --output-as-version flag has been added to mysqldump, allowing dumps to be formatted for compatibility with older MySQL versions. This simplifies cross-version backup and restore scenarios.

8. FLUSH HOSTS Removed The FLUSH HOSTS command has been removed entirely. To clear the host cache, teams must now use TRUNCATE TABLE performance_schema.host_cache instead.

Before You Migrate - Key Actions:

  • Replace all mysql_native_password users with modern auth plugins
  • Update replication scripts to use SOURCE/REPLICA terminology
  • Remove AUTO_INCREMENT from FLOAT/DOUBLE columns
  • Grant FLUSH_PRIVILEGES where needed
  • Review the new InnoDB defaults for performance impact
  • Replace FLUSH HOSTS in operational scripts
  • Test mysqldump with the new version flag
  • Validate all connectors and application drivers

Bottom Line

MySQL 8.4 is a strategic milestone, not a simple patch. Organizations still on MySQL 8.0 should begin planning now, as it approaches end-of-life. Upgrading to 8.4 requires structured validation across authentication, replication, privileges, schema design, and application compatibility — treating it as a full migration rather than a routine update.

More from Mafiree

View all →

Similar Reads

Browse topics →

More in Business

Browse all in Business →

Discussion (0 comments)

0 comments

No comments yet. Be the first!