---
title: "Migrer une base MySQL vers MariaDB"
description: "Migrez une base MySQL ou MariaDB vers MariaDB : convertissez son dump en script avec les mêmes tables, clés et données, et un rapport de chaque changement."
canonical: https://intosql.com/fr/mysql-en-mariadb
last_updated: 2026-10-15
---

# Migrer une base MySQL vers MariaDB

Déposez un dump de mysqldump, mariadb-dump, mysqlpump, phpMyAdmin ou Adminer, en .sql ou .sql.gz, et téléchargez un script MariaDB avec les mêmes tables, clés, index et données. Chaque valeur que MariaDB ne peut pas contenir telle quelle, et chaque objet qu'il ne reprend pas, est listé dans le rapport.

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

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

## Ce qui change de MySQL à MariaDB

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 MySQL | Dans MariaDB | Ligne du rapport |
| --- | --- | --- |
| utf8mb4_0900_* and utf8mb4_uca1400_* collations | utf8mb4_unicode_520_ci pour utf8mb4_0900_* (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 (LONGTEXT vérifié par MariaDB) |  |
| 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 INVISIBLE |  |
| CHECK constraints | conservé |  |
| 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 | conservé | `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) | conservé |  |
| BINARY, VARBINARY, BLOB | conservé |  |
| PARTITION BY | une seule table | `partitions_dropped` |
| WITH SYSTEM VERSIONING (MariaDB) | WITH SYSTEM VERSIONING, à partir des lignes actuelles |  |
| Aria, ColumnStore, CONNECT, Spider, RocksDB (MariaDB) | conservé |  |
| CREATE SEQUENCE (MariaDB) | CREATE SEQUENCE avec sa prochaine valeur |  |
| 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 MariaDB

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
mariadb --default-character-set=utf8mb4 mydb < mysql.mariadb.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, comme le fait mysqldump.

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 MariaDB 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, déclencheurs, procédures stockées, fonctions et événements sont écrits dans le langage propre à chaque base de données. Ils sont listés par nom dans le rapport, jamais supprimés en silence, pour que vous puissiez les réécrire pour MariaDB.

## Questions sur MySQL vers MariaDB

### 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 ?

MariaDB les garde : le script définit un mode SQL qui accepte les dates zéro et impossibles pendant le chargement, elles arrivent donc 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 ?

Il reste 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 puissiez vérifier chacun avec MariaDB avant de le recréer. ON UPDATE CURRENT_TIMESTAMP reste tel quel.

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

MariaDB 10.11 et versions ultérieures. Chaque dump de test se charge sur 10.11 et 11.4, de MySQL 5.7 à 9 et depuis MariaDB.

## Depuis MySQL

- [MySQL vers PostgreSQL](https://intosql.com/fr/mysql-en-postgresql)
- [MySQL vers MySQL](https://intosql.com/fr/mysql-en-mysql)
- [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 MariaDB

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

## Guide et toutes les paires

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