• Contact

MySQL 8.0 → 8.4 : Ce qui change, ce qui casse, ce qu'il faut savoir

  • 20 mars 2026
  • 3 min. à lire

MySQL 8.0 atteint sa fin de vie en avril 2026. La 8.4 LTS prend le relais - mais la migration n'est pas transparente. Voici tout ce qui change concrètement.

MySQL 8.0 atteint sa fin de vie en avril 2026. La 8.4, première version LTS du nouveau modèle Oracle (support jusqu’en 2032), prend le relais. Mais entre les deux, il y a un bon paquet de changements qui ne sont pas transparents : scripts de réplication qui plantent, applications qui ne se connectent plus, performances InnoDB qui changent sans prévenir.

Cet article fait le tour de ce qui change concrètement, de ce qui casse, et de ce qu’il faut anticiper avant de migrer.

La 8.4 n’est pas une mise à jour mineure. C’est un nettoyage massif de dette technique accumulée depuis la série 5.x, combiné à un recalibrage complet des defaults pour du matériel moderne.

Ce qui casse

mysql_native_password désactivé par défaut

C’est probablement le changement qui fera le plus de dégâts en production. Le plugin mysql_native_password est désactivé par défaut. Toute application qui l’utilise encore (vieux connecteurs PHP, scripts legacy) ne pourra plus se connecter.

En attendant la mise à jour des connecteurs :

# my.cnf
[mysqld]
mysql_native_password=ON

Le plugin sera définitivement supprimé dans la série 9.x. C’est un sursis, pas une solution.

La variable default_authentication_plugin n’existe plus non plus. Utilisez authentication_policy à la place.

La terminologie MASTER / SLAVE supprimée

Ce n’est plus un avertissement de dépréciation. Les anciennes commandes provoquent des erreurs de syntaxe :

SuppriméRemplacement
CHANGE MASTER TOCHANGE REPLICATION SOURCE TO
START SLAVESTART REPLICA
STOP SLAVESTOP REPLICA
SHOW SLAVE STATUSSHOW REPLICA STATUS
SHOW MASTER STATUSSHOW BINARY LOG STATUS
RESET MASTERRESET BINARY LOGS AND GTIDS

Toutes les options MASTER_* dans CHANGE REPLICATION SOURCE TO (MASTER_HOST, MASTER_USER, MASTER_PASSWORD…) sont remplacées par leurs équivalents SOURCE_*.

Pensez à vérifier vos scripts, vos outils de monitoring, vos playbooks Ansible. Si MASTER ou SLAVE traîne quelque part dans vos configurations, ça plantera au démarrage.

Nouveaux mots réservés

MANUAL, PARALLEL, QUALIFY et TABLESAMPLE sont désormais des mots réservés. Si vous avez des colonnes ou des alias non quotés avec ces noms, vous aurez des erreurs de syntaxe.

Autres suppressions notables

  • AUTO_INCREMENT sur une colonne FLOAT ou DOUBLE → erreur. Migrez vers un type entier avant l’upgrade.
  • expire_logs_days → supprimé. Utilisez binlog_expire_logs_seconds.
  • FLUSH HOSTS → supprimé. Utilisez TRUNCATE TABLE performance_schema.host_cache.
  • mysql_upgrade, mysqlpump → supprimés. L’upgrade se fait automatiquement au démarrage du serveur. Utilisez mysqldump ou MySQL Shell pour les dumps.
  • WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS() → supprimé. Utilisez WAIT_FOR_EXECUTED_GTID_SET().

Les defaults InnoDB : tout change

MySQL 8.4 aligne les valeurs par défaut d’InnoDB sur le matériel d’aujourd’hui (SSD, multi-core). Si vos benchmarks changent après migration, c’est probablement à cause de ça :

Variable8.08.4
innodb_io_capacity20010 000
innodb_flush_method (Linux)fsyncO_DIRECT
innodb_log_buffer_size16 Mo64 Mo
innodb_adaptive_hash_indexONOFF
innodb_change_bufferingallnone
innodb_numa_interleaveOFFON
innodb_use_fdatasyncOFFON
innodb_buffer_pool_instances8Dynamique (CPU/RAM)
innodb_read_io_threads4CPU/2 (min 4)
innodb_parallel_read_threads4CPU/8 (min 4)
temptable_max_ram1 Go3% de la RAM (1-4 Go)
temptable_use_mmapONOFF

La philosophie : innodb_io_capacity à 200, c’était calibré pour des disques rotatifs. innodb_flush_method en fsync, c’était du double-buffering inutile avec le page cache de l’OS. innodb_change_buffering activé, c’était une optimisation pour l’I/O aléatoire qui n’a plus de sens sur SSD.

Si vous avez tuné ces valeurs manuellement dans votre my.cnf, pas de souci - vos valeurs prennent le dessus. Sinon, attendez-vous à des changements de comportement.

Sécurité renforcée

  • TLS 1.0 et 1.1 supprimés. Seuls TLS 1.2 et 1.3 sont acceptés.
  • Chiffrements faibles rejetés. Les connexions doivent utiliser du perfect forward secrecy, SHA2, et AES-GCM.
  • Validation des certificats TLS au démarrage. La nouvelle variable tls_certificates_enforced_validation empêche le serveur de démarrer avec un certificat invalide.
  • Nouveaux privilèges granulaires : FLUSH_PRIVILEGES (remplace l’usage de RELOAD pour FLUSH PRIVILEGES), OPTIMIZE_LOCAL_TABLE, SET_ANY_DEFINER.
  • Plugins keyring migrés vers des composants : keyring_filecomponent_keyring_file, keyring_encrypted_filecomponent_keyring_encrypted_file.

Les nouveautés utiles

Tagged GTIDs. Nouveau format UUID:TAG:NUMBER (tag de 8 caractères max). Permet de catégoriser les transactions par application ou par tenant. Nécessite le privilège TRANSACTION_GTID_TAG.

EXPLAIN amélioré. EXPLAIN FORMAT=JSON INTO @variable pour capturer un plan d’exécution dans une variable. EXPLAIN FOR SCHEMA schema_name pour analyser une requête dans le contexte d’un autre schéma.

Histogrammes automatiques. ANALYZE TABLE t AUTO UPDATE rafraîchit les histogrammes automatiquement quand InnoDB recalcule les statistiques.

INTERSECT et EXCEPT optimisés. Utilisation de hash tables au lieu de tables temporaires. Activé par défaut via hash_set_operations.

Group Replication. Consistency par défaut passe à BEFORE_ON_PRIMARY_FAILOVER (avant : EVENTUAL). Garbage collection préemptif en mode single-primary. Downgrades in-place supportés au sein de la série 8.4.x.

mysqldump --output-as-version. Génère des dumps compatibles avec les anciennes versions (BEFORE_8_2_0, BEFORE_8_0_23). Utile pendant la période de migration.


La migration vers MySQL 8.4 demande un minimum de préparation : vérifiez vos scripts de réplication, testez vos connecteurs avec caching_sha2_password, et validez le comportement InnoDB sur un environnement de staging. Un backup complet avant de toucher à la production reste, comme toujours, indispensable.

Pour les détails exhaustifs, la documentation officielle MySQL 8.4 et le guide de migration Percona couvrent l’ensemble des changements.

Nicolas Verlhiac

Nicolas Verlhiac

Full stack software expert | E-commerce & CRM

Nous sommes spécialisés dans la création de solutions technologiques innovantes qui aident les entreprises à rester compétitives et à prospérer.

tracking-thumb