---
title: "Passer un dump MySQL à une autre version"
description: "Convertissez un dump MySQL pour la version de MySQL cible : un dump 8.0 ou 9 reçoit des collations que 5.7 accepte. Mêmes tables, clés et données."
canonical: https://intosql.com/fr/mysql-en-mysql
last_updated: 2026-10-15
---

# Passer un dump MySQL à une autre version

Déposez un dump de mysqldump, mysqlpump, phpMyAdmin ou Adminer, de MySQL 5.5 à 9, en .sql ou .sql.gz, et téléchargez un script qui se charge sur MySQL 5.7 et suivants. Les collations que seuls MySQL 8 et suivants connaissent, comme utf8mb4_0900_ai_ci, deviennent utf8mb4_unicode_520_ci, et chaque changement figure dans le rapport.

[Guide de migration de MySQL vers MySQL](https://intosql.com/docs/migrations/mysql-to-mysql)

[Types de données de MySQL vers MySQL](https://intosql.com/docs/types/mysql-to-mysql)

## Ce qui change entre le fichier et le script

Chaque ligne est une règle appliquée par le convertisseur, avec la ligne de rapport qu'il écrit quand la règle change quelque chose dans vos données.

| Dans le fichier | Dans le script | Ligne du rapport |
| --- | --- | --- |
| utf8mb4_0900_* and utf8mb4_uca1400_* collations | utf8mb4_unicode_520_ci (utf8mb4_bin pour les binaires) | `collation_replaced` |
| zero, partial or impossible dates (0000-00-00, 2024-02-30) | conservé |  |
| TIME | TIME, durées comprises |  |
| TINYINT(1), BOOL | TINYINT(1) |  |
| UNSIGNED and ZEROFILL | conservé |  |
| ENUM and SET, the '' error value included | conservé |  |
| JSON | JSON |  |
| NUL bytes in text | conservé |  |
| AUTO_INCREMENT | AUTO_INCREMENT avec le compteur de la table |  |
| MyISAM AUTO_INCREMENT on the second column of a key, in a table that isn't MyISAM in the dump | un index sur la colonne et un seul compteur pour la table | `myisam_group_autoincrement` |
| ON UPDATE CURRENT_TIMESTAMP | conservé |  |
| generated columns | VIRTUAL ou STORED comme dans la source |  |
| generated columns with functions IntoSQL doesn't read | une colonne simple | `generated_not_translated` |
| INVISIBLE columns | colonnes ordinaires | `invisible_column` |
| CHECK constraints | conservées (MySQL 5.7 les analyse et les ignore) |  |
| CHECK constraints with functions IntoSQL doesn't read | non créée | `check_skipped` |
| CHECK ... NOT ENFORCED | non créée | `check_not_enforced` |
| expression defaults, and defaults on TEXT, BLOB, JSON and GEOMETRY | aucune valeur par défaut | `default_not_translated` |
| functional indexes, KEY ((expr)) | non créé | `index_skipped` |
| keys and indexes on a prefix, c(20) | conservé |  |
| FULLTEXT indexes | conservé |  |
| SPATIAL indexes | conservé |  |
| foreign keys | conservées, chargées avec FOREIGN_KEY_CHECKS=0 |  |
| GEOMETRY, POINT, POLYGON... | conservé, avec le SRID de chaque valeur |  |
| INET4, INET6, UUID (MariaDB) | varchar(15), varchar(39), char(36) | `type_replaced` |
| BINARY, VARBINARY, BLOB | conservé |  |
| PARTITION BY | une seule table | `partitions_dropped` |
| WITH SYSTEM VERSIONING (MariaDB) | une table avec les lignes actuelles | `system_versioning_dropped` |
| Aria, ColumnStore, CONNECT, Spider, RocksDB (MariaDB) | InnoDB | `engine_dropped` |
| CREATE SEQUENCE (MariaDB) | non créée | `sequence_not_converted` |
| views, triggers, procedures, functions and events | listés dans le rapport | `not_converted_objects` |
| NOT NULL columns with values that become NULL | NOT NULL retiré | `not_null_relaxed` |
| text that isn't valid in its character set | les octets invalides deviennent le caractère de remplacement | `invalid_utf8_replaced` |
| text decoded twice (Ã±) | copié tel quel | `mojibake_suspected` |
| dumps without CREATE TABLE | types déduits des valeurs | `no_schema` |
| geometries in a dump without CREATE TABLE | GEOMETRY |  |
| SET NAMES utf8 from utf8mb4 tables | converti, avec un avertissement | `dump_lost_four_byte_chars` |
| dumps without SET NAMES whose text isn't UTF-8 | lu comme Latin-1 (Windows-1252) | `charset_guessed` |
| sjis, cp932, gbk, big5 dumps | lu comme UTF-8, avec un avertissement | `unsupported_charset` |
| UNHEX('..'), CONVERT(b'..', UNSIGNED), CONVERT(".." USING x), ST_GeomFromText('..') in rows | évaluées |  |
| other expressions in rows | NULL | `expression_value` |
| DEFAULT in VALUES | la valeur par défaut de la colonne | `default_keyword_filled` |
| DEFAULT in VALUES without a literal default | NULL | `default_keyword_null` |
| REPLACE and INSERT IGNORE | lignes simples | `replace_as_insert` |
| types IntoSQL doesn't know | LONGBLOB | `unknown_type` |
| values that don't fit their column | NULL | `invalid_value_null` |
| unreadable geometries | NULL | `bad_geometry` |
| TIMESTAMP | conservé, chargé dans le fuseau horaire indiqué par le dump |  |
| VECTOR(n) (MariaDB 11.7+) | json avec les flottants en tableau | `type_replaced` |

## Charger le script dans MySQL

Le script crée les tables, copie les lignes, puis ajoute les clés, les index et les clés étrangères ; il se charge donc vite et s'arrête à la première erreur.

```shell
mysql --default-character-set=utf8mb4 mydb < mysql.mysql.sql
```

Les clés étrangères sont créées comme le dump les déclare, avec FOREIGN_KEY_CHECKS=0 pendant le chargement des lignes ; une ligne qui pointe vers une ligne absente n'arrête donc pas le chargement.

Pour un gros dump, exécutez le client sur la machine du serveur, et augmentez max_allowed_packet si une seule ligne est très grande.

IntoSQL Pro charge le fichier directement dans MySQL depuis l'application de bureau ou la ligne de commande, sans écrire de script.

## Faire le dump MySQL pour un meilleur résultat

Le convertisseur lit ce que contient le dump. Ces options y gardent davantage de vos données :

- --default-character-set=utf8mb4 garde les emoji et autres caractères sur 4 octets, qu'un dump utf8 perd avant que le convertisseur ne le voie.
- --hex-blob écrit les colonnes binaires en hexadécimal, ce qui résiste aux copies entre systèmes.
- --routines --triggers --events ajoutent ces objets au dump, pour que le rapport puisse les lister.

## Ce qui n'est pas converti

Les vues, triggers, procédures, fonctions et autres objets écrits dans le propre langage de MySQL sont listés par nom dans le rapport, jamais supprimés en silence, pour que vous vérifiiez chacun face à la version de MySQL cible avant de le recréer.

## Questions sur le passage de MySQL d'une version à l'autre

### Mon dump est-il envoyé ?

Non. Le convertisseur s'exécute dans votre navigateur et lit le dump depuis votre disque par morceaux ; il ne quitte donc jamais votre ordinateur. L'application de bureau et la ligne de commande convertissent aussi sur votre ordinateur.

### Quelle taille peut avoir le dump ?

Le convertisseur ne garde jamais tout le dump en mémoire : il lit le fichier deux fois, par plages, et écrit le script au fur et à mesure. Les dumps de plusieurs gigaoctets se convertissent dans le navigateur, dans l'application de bureau et avec la ligne de commande.

### Lit-il les dumps MariaDB ?

Oui. Les dumps de mariadb-dump et de MariaDB 10.3 à 12 se convertissent de la même façon, y compris les colonnes INET6, INET4 et UUID de MariaDB.

### Que deviennent les dates 0000-00-00 ?

MySQL les conserve : le script définit un mode SQL qui accepte les dates zéro et impossibles pendant le chargement, donc elles arrivent telles quelles.

### Les valeurs AUTO_INCREMENT sont-elles conservées ?

Oui. AUTO_INCREMENT reste tel quel, et le compteur de la table reprend là où le dump l'a laissé.

### TINYINT(1) devient-il boolean ?

Elle reste en TINYINT(1), comme dans la source, donc chaque valeur garde son nombre.

### Et les procédures stockées et les déclencheurs ?

Ils sont listés par nom dans le rapport et ne sont pas convertis, pour que vous vérifiiez chacun face à la version de MySQL cible avant de le recréer. ON UPDATE CURRENT_TIMESTAMP reste tel quel.

### Sur quelles versions de MySQL le script se charge-t-il ?

MySQL 5.7 et suivants. Chaque dump de test se charge sur 5.7 et 9, en s'arrêtant à la première erreur en cas de problème.

## Depuis MySQL

- [MySQL vers PostgreSQL](https://intosql.com/fr/mysql-en-postgresql)
- [MySQL vers MariaDB](https://intosql.com/fr/mysql-en-mariadb)
- [MySQL vers SQLite](https://intosql.com/fr/mysql-en-sqlite)
- [MySQL vers SQL Server](https://intosql.com/fr/mysql-en-sql-server)
- [MySQL vers Oracle](https://intosql.com/fr/mysql-en-oracle)

## Vers MySQL

- [MariaDB vers MySQL](https://intosql.com/fr/mariadb-en-mysql)
- [PostgreSQL vers MySQL](https://intosql.com/fr/postgresql-en-mysql)
- [SQL Server vers MySQL](https://intosql.com/fr/sql-server-en-mysql)
- [SQLite vers MySQL](https://intosql.com/fr/sqlite-en-mysql)
- [Oracle vers MySQL](https://intosql.com/fr/oracle-en-mysql)

## Guide et toutes les paires

- [Guide de migration de MySQL vers MySQL](https://intosql.com/docs/migrations/mysql-to-mysql)
- [Types de données de MySQL vers MySQL](https://intosql.com/docs/types/mysql-to-mysql)
- [Toutes les paires de bases de données](https://intosql.com/fr/migration-de-base-de-donnees)
