Passer un dump MySQL vers un MySQL plus ancien ou plus récent
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.
18 lignes converties, 2 corrections, aucune rejetée
Tables de shop_2024.sqlDump MySQL 8.0.46 · écrit par mysqldump · utf8mb4
customers8 lignes1
7 colonnes id int unsigned not null name varchar(100) not null email varchar(150) not null country char(2) not null is_active tinyint(1) not null signed_up date not null created_at timestamp not null orders10 lignes1
9 colonnes id int unsigned not null customer_id int unsigned not null status enum('pending','paid','shipped','cancelled') not null total decimal(10,2) not null items smallint unsigned not null ordered_at datetime not null shipped_at datetime note varchar(255) updated_at timestamp not null
-- Written by IntoSQL from a MySQL dump. Load it with: mysql --default-character-set=utf8mb4 <database> < <file>
SET NAMES utf8mb4;
SET TIME_ZONE = '+00:00';
SET FOREIGN_KEY_CHECKS = 0;
SET UNIQUE_CHECKS = 0;
SET SQL_MODE = 'NO_AUTO_VALUE_ON_ZERO,ALLOW_INVALID_DATES';
CREATE TABLE `customers` (
`id` int unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`email` varchar(150) NOT NULL,
`country` char(2) NOT NULL DEFAULT 'US',
`is_active` tinyint(1) NOT NULL DEFAULT 1,
`signed_up` date NOT NULL DEFAULT '0000-00-00',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `uq_email` (`email`)
) ENGINE=InnoDB AUTO_INCREMENT=1001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci COMMENT='People who bought at least once';
CREATE TABLE `orders` (
`id` int unsigned NOT NULL AUTO_INCREMENT,
`customer_id` int unsigned NOT NULL,
`status` enum('pending','paid','shipped','cancelled') NOT NULL DEFAULT 'pending',
`total` decimal(10,2) NOT NULL,
`items` smallint unsigned NOT NULL DEFAULT 1,
`ordered_at` datetime NOT NULL,
`shipped_at` datetime DEFAULT NULL,
`note` varchar(255) DEFAULT NULL,
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_customer` (`customer_id`),
KEY `idx_status_date` (`status`,`ordered_at`),
CONSTRAINT `fk_orders_customer` FOREIGN KEY (`customer_id`) REFERENCES `customers` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
INSERT INTO `customers` (`id`,`name`,`email`,`country`,`is_active`,`signed_up`,`created_at`) VALUES (1,'Ana Martínez','ana@example.com','MX',1,'2023-01-15','2023-01-15 10:24:00'),(2,'Zoë Müller','zoe@example.de','DE',1,'2023-02-03','2023-02-03 08:11:42'),(3,'José Peña','jose@example.es','ES',0,'2023-03-21','2023-03-21 19:05:17'),(4,'李雷','lilei@example.cn','CN',1,'2023-05-09','2023-05-09 02:40:00'),(5,'Noah O\'Brien','noah@example.ie','IE',1,'0000-00-00','2023-06-30 14:00:00'),(6,'Amélie Laurent','amelie@example.fr','FR',1,'2024-01-02','2024-01-02 09:30:00'),(7,'Ravi Patel','ravi@example.in','IN',0,'2024-02-29','2024-02-29 23:59:59'),(8,'Sofia Rossi 🌻','sofia@example.it','IT',1,'2024-04-12','2024-04-12 12:12:12');
INSERT INTO `orders` (`id`,`customer_id`,`status`,`total`,`items`,`ordered_at`,`shipped_at`,`note`,`updated_at`) VALUES (1,1,'shipped',129.90,3,'2024-03-01 10:00:00','2024-03-02 16:30:00',NULL,'2024-03-02 16:30:00'),(2,2,'paid',54.00,1,'2024-03-02 11:15:00',NULL,'Gift wrap 🎁','2024-03-02 11:20:00'),(3,1,'cancelled',12.50,1,'2024-03-03 09:45:00',NULL,'Customer changed their mind','2024-03-03 10:00:00'),(4,4,'shipped',980.00,12,'2024-03-05 02:10:00','2024-03-07 08:00:00','请小心轻放','2024-03-07 08:00:00'),(5,5,'pending',45.75,2,'2024-03-08 17:20:00',NULL,'Leave at the door; ring twice','2024-03-08 17:20:00'),(6,6,'shipped',310.40,5,'2024-03-10 13:00:00','2024-03-11 09:00:00','Fragile: \"glass\"','2024-03-11 09:00:00'),(7,8,'paid',76.20,2,'2024-03-11 18:45:00',NULL,NULL,'2024-03-11 18:46:00'),(8,2,'',19.99,1,'2024-03-12 08:00:00',NULL,'Status lost in an old import','2024-03-12 08:00:00'),(9,3,'shipped',64.00,2,'2024-03-14 15:30:00','0000-00-00 00:00:00','Shipping date never recorded','2024-03-15 10:00:00'),(10,7,'paid',1499.00,1,'2024-03-15 21:05:00',NULL,'C:\\Users\\ravi\\invoice.pdf','2024-03-15 21:05:00');
SET UNIQUE_CHECKS = 1;
SET FOREIGN_KEY_CHECKS = 1;
Corrections
- customers utilise la collation utf8mb4_0900_ai_ci, que MySQL n'a pas, donc elle utilise utf8mb4_unicode_520_ci ; le texte peut se trier et se comparer un peu différemment.
- orders utilise la collation utf8mb4_0900_ai_ci, que MySQL n'a pas, donc elle utilise utf8mb4_unicode_520_ci ; le texte peut se trier et se comparer un peu différemment.
Votre fichier est converti sur cet ordinateur et n'est jamais envoyé.
Autres exemples :
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.
utf8mb4_0900_* and utf8mb4_uca1400_* collations
utf8mb4_unicode_520_ci (utf8mb4_bin pour les binaires)
MySQL ne connaît pas les collations plus récentes, l'erreur qui empêche la plupart des dumps MySQL 8 de se charger ailleurs. unicode_520 suit au plus près les mêmes règles Unicode.
Ligne du rapport: collation_replaced
zero, partial or impossible dates (0000-00-00, 2024-02-30)
conservé
Le script se charge avec ALLOW_INVALID_DATES et sans NO_ZERO_DATE, donc MySQL garde les mêmes valeurs que la source.
TIME
TIME, durées comprises
Le même type, avec la même plage.
TINYINT(1), BOOL
TINYINT(1)
Le même type avec les mêmes valeurs.
UNSIGNED and ZEROFILL
conservé
Les mêmes types.
ENUM and SET, the '' error value included
conservé
Les mêmes types ; le script se charge sans mode strict, donc la valeur d'erreur se charge telle quelle.
JSON
JSON
MySQL lit le même texte JSON.
NUL bytes in text
conservé
La valeur est copiée avec le même échappement que la source.
AUTO_INCREMENT
AUTO_INCREMENT avec le compteur de la table
Le compteur reprend là où la source l'a laissé, y compris les compteurs par groupe de MyISAM.
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
InnoDB ne compte une colonne que si elle est en tête d'un index, et une seule fois pour toute la table.
Ligne du rapport: myisam_group_autoincrement
ON UPDATE CURRENT_TIMESTAMP
conservé
La même clause, avec les fractions de seconde de la colonne.
generated columns
VIRTUAL ou STORED comme dans la source
La même formule, traduite terme à terme.
generated columns with functions IntoSQL doesn't read
une colonne simple
Une formule qu'IntoSQL ne sait pas lire laisse une colonne simple et une ligne dans le rapport.
Ligne du rapport: generated_not_translated
INVISIBLE columns
colonnes ordinaires
MySQL a des colonnes invisibles depuis 8.0.23, MariaDB depuis 10.3.
Ligne du rapport: invisible_column
CHECK constraints
conservées (MySQL 5.7 les analyse et les ignore)
Les mêmes contraintes CHECK, traduites terme à terme.
CHECK constraints with functions IntoSQL doesn't read
non créée
Une contrainte CHECK qu'IntoSQL ne sait pas lire est omise et signalée.
Ligne du rapport: check_skipped
CHECK ... NOT ENFORCED
non créée
MySQL 5.7 et MariaDB ne peuvent pas garder une contrainte CHECK sans l'appliquer, et les lignes peuvent l'enfreindre.
Ligne du rapport: check_not_enforced
expression defaults, and defaults on TEXT, BLOB, JSON and GEOMETRY
aucune valeur par défaut
MySQL les accepte depuis 8.0.13 ; le script se charge sur 5.7, donc elles sont omises et signalées. MariaDB les accepte.
Ligne du rapport: default_not_translated
functional indexes, KEY ((expr))
non créé
MySQL indexe des expressions depuis 8.0.13 et MariaDB pas du tout ; une colonne générée avec un index fait la même chose.
Ligne du rapport: index_skipped
keys and indexes on a prefix, c(20)
conservé
Le même index.
FULLTEXT indexes
conservé
Le même index ; MATCH ... AGAINST fonctionne comme avant.
SPATIAL indexes
conservé
Le même index.
foreign keys
conservées, chargées avec FOREIGN_KEY_CHECKS=0
Les mêmes clés ; les lignes se chargent comme depuis le dump source.
GEOMETRY, POINT, POLYGON...
conservé, avec le SRID de chaque valeur
Les octets de géométrie propres au serveur sont copiés, SRID compris.
INET4, INET6, UUID (MariaDB)
varchar(15), varchar(39), char(36)
MySQL n'a pas ces types ; le texte que MariaDB écrit pour eux est conservé.
Ligne du rapport: type_replaced
BINARY, VARBINARY, BLOB
conservé
Les octets restent des octets.
PARTITION BY
une seule table
Les lignes sont les mêmes ; partitionnez à nouveau la table si besoin.
Ligne du rapport: partitions_dropped
WITH SYSTEM VERSIONING (MariaDB)
une table avec les lignes actuelles
Un dump ne contient que les lignes actuelles ; MySQL n'a pas de versionnage système.
Ligne du rapport: system_versioning_dropped
Aria, ColumnStore, CONNECT, Spider, RocksDB (MariaDB)
InnoDB
MySQL n'a aucun de ces moteurs. Tous les autres moteurs sont conservés.
Ligne du rapport: engine_dropped
CREATE SEQUENCE (MariaDB)
non créée
MySQL n'a pas de séquences.
Ligne du rapport: sequence_not_converted
views, triggers, procedures, functions and events
listés dans le rapport
Ils sont listés pour que vous les recréiez ; leur code nomme souvent son definer et des fonctions du serveur.
Ligne du rapport: not_converted_objects
NOT NULL columns with values that become NULL
NOT NULL retiré
Une colonne dont des valeurs ont dû devenir NULL ne peut pas garder NOT NULL, sinon le chargement s'arrêterait.
Ligne du rapport: not_null_relaxed
text that isn't valid in its character set
les octets invalides deviennent le caractère de remplacement
Le script est en UTF-8 ; des octets qui ne le sont pas arrêteraient le chargement.
Ligne du rapport: invalid_utf8_replaced
text decoded twice (ñ)
copié tel quel
Le dump contient exactement ces caractères, ils sont donc copiés ; le rapport les signale.
Ligne du rapport: mojibake_suspected
dumps without CREATE TABLE
types déduits des valeurs
Un dump fait avec --no-create-info ne contient que des lignes, donc les types viennent des valeurs.
Ligne du rapport: no_schema
geometries in a dump without CREATE TABLE
GEOMETRY
Le format de géométrie de MySQL est reconnu à partir des valeurs.
SET NAMES utf8 from utf8mb4 tables
converti, avec un avertissement
Le mysqldump de MySQL 5.x écrit par défaut en utf8 sur 3 octets et remplace chaque emoji par un point d'interrogation avant qu'un convertisseur ne voie le fichier.
Ligne du rapport: dump_lost_four_byte_chars
dumps without SET NAMES whose text isn't UTF-8
lu comme Latin-1 (Windows-1252)
Le latin1 de MySQL est le Windows-1252, l'encodage habituel de ces dumps.
Ligne du rapport: charset_guessed
sjis, cp932, gbk, big5 dumps
lu comme UTF-8, avec un avertissement
Ces encodages ne sont pas encore décodés.
Ligne du rapport: unsupported_charset
UNHEX('..'), CONVERT(b'..', UNSIGNED), CONVERT(".." USING x), ST_GeomFromText('..') in rows
évaluées
Certains outils de dump écrivent les valeurs sous forme de ces appels ; ils sont lus comme les valeurs qu'ils produisent.
other expressions in rows
NULL
Un convertisseur qui n'exécute pas de base de données ne peut pas les évaluer.
Ligne du rapport: expression_value
DEFAULT in VALUES
la valeur par défaut de la colonne
Une valeur par défaut littérale est copiée dans la ligne.
Ligne du rapport: default_keyword_filled
DEFAULT in VALUES without a literal default
NULL
Il n'y a aucune valeur à copier.
Ligne du rapport: default_keyword_null
REPLACE and INSERT IGNORE
lignes simples
Un dump a une ligne par clé, donc les lignes sont les mêmes.
Ligne du rapport: replace_as_insert
types IntoSQL doesn't know
LONGBLOB
Un blob contient les octets de n'importe quelle valeur ; changez le type après le chargement.
Ligne du rapport: unknown_type
values that don't fit their column
NULL
Un dump endommagé ou écrit à la main peut contenir des valeurs que sa colonne n'accepte pas ; elles deviennent NULL pour que le reste se charge.
Ligne du rapport: invalid_value_null
unreadable geometries
NULL
Des octets qui ne forment pas une géométrie ne peuvent pas être stockés comme telle.
Ligne du rapport: bad_geometry
TIMESTAMP
conservé, chargé dans le fuseau horaire indiqué par le dump
Le script définit le même fuseau horaire que le dump, donc chaque instant reste le même.
VECTOR(n) (MariaDB 11.7+)
json avec les flottants en tableau
MySQL 5.7 et 8.0 n'ont pas de type vector ; un tableau JSON garde chaque flottant dans toutes les versions.
Ligne du rapport: type_replaced
| Dans le fichier | Dans le script | Ligne du rapport |
|---|---|---|
| utf8mb4_0900_* and utf8mb4_uca1400_* collations | utf8mb4_unicode_520_ci (utf8mb4_bin pour les binaires)MySQL ne connaît pas les collations plus récentes, l'erreur qui empêche la plupart des dumps MySQL 8 de se charger ailleurs. unicode_520 suit au plus près les mêmes règles Unicode. | collation_replaced |
| zero, partial or impossible dates (0000-00-00, 2024-02-30) | conservéLe script se charge avec ALLOW_INVALID_DATES et sans NO_ZERO_DATE, donc MySQL garde les mêmes valeurs que la source. | |
| TIME | TIME, durées comprisesLe même type, avec la même plage. | |
| TINYINT(1), BOOL | TINYINT(1)Le même type avec les mêmes valeurs. | |
| UNSIGNED and ZEROFILL | conservéLes mêmes types. | |
| ENUM and SET, the '' error value included | conservéLes mêmes types ; le script se charge sans mode strict, donc la valeur d'erreur se charge telle quelle. | |
| JSON | JSONMySQL lit le même texte JSON. | |
| NUL bytes in text | conservéLa valeur est copiée avec le même échappement que la source. | |
| AUTO_INCREMENT | AUTO_INCREMENT avec le compteur de la tableLe compteur reprend là où la source l'a laissé, y compris les compteurs par groupe de MyISAM. | |
| 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 tableInnoDB ne compte une colonne que si elle est en tête d'un index, et une seule fois pour toute la table. | myisam_group_autoincrement |
| ON UPDATE CURRENT_TIMESTAMP | conservéLa même clause, avec les fractions de seconde de la colonne. | |
| generated columns | VIRTUAL ou STORED comme dans la sourceLa même formule, traduite terme à terme. | |
| generated columns with functions IntoSQL doesn't read | une colonne simpleUne formule qu'IntoSQL ne sait pas lire laisse une colonne simple et une ligne dans le rapport. | generated_not_translated |
| INVISIBLE columns | colonnes ordinairesMySQL a des colonnes invisibles depuis 8.0.23, MariaDB depuis 10.3. | invisible_column |
| CHECK constraints | conservées (MySQL 5.7 les analyse et les ignore)Les mêmes contraintes CHECK, traduites terme à terme. | |
| CHECK constraints with functions IntoSQL doesn't read | non crééeUne contrainte CHECK qu'IntoSQL ne sait pas lire est omise et signalée. | check_skipped |
| CHECK ... NOT ENFORCED | non crééeMySQL 5.7 et MariaDB ne peuvent pas garder une contrainte CHECK sans l'appliquer, et les lignes peuvent l'enfreindre. | check_not_enforced |
| expression defaults, and defaults on TEXT, BLOB, JSON and GEOMETRY | aucune valeur par défautMySQL les accepte depuis 8.0.13 ; le script se charge sur 5.7, donc elles sont omises et signalées. MariaDB les accepte. | default_not_translated |
| functional indexes, KEY ((expr)) | non crééMySQL indexe des expressions depuis 8.0.13 et MariaDB pas du tout ; une colonne générée avec un index fait la même chose. | index_skipped |
| keys and indexes on a prefix, c(20) | conservéLe même index. | |
| FULLTEXT indexes | conservéLe même index ; MATCH ... AGAINST fonctionne comme avant. | |
| SPATIAL indexes | conservéLe même index. | |
| foreign keys | conservées, chargées avec FOREIGN_KEY_CHECKS=0Les mêmes clés ; les lignes se chargent comme depuis le dump source. | |
| GEOMETRY, POINT, POLYGON... | conservé, avec le SRID de chaque valeurLes octets de géométrie propres au serveur sont copiés, SRID compris. | |
| INET4, INET6, UUID (MariaDB) | varchar(15), varchar(39), char(36)MySQL n'a pas ces types ; le texte que MariaDB écrit pour eux est conservé. | type_replaced |
| BINARY, VARBINARY, BLOB | conservéLes octets restent des octets. | |
| PARTITION BY | une seule tableLes lignes sont les mêmes ; partitionnez à nouveau la table si besoin. | partitions_dropped |
| WITH SYSTEM VERSIONING (MariaDB) | une table avec les lignes actuellesUn dump ne contient que les lignes actuelles ; MySQL n'a pas de versionnage système. | system_versioning_dropped |
| Aria, ColumnStore, CONNECT, Spider, RocksDB (MariaDB) | InnoDBMySQL n'a aucun de ces moteurs. Tous les autres moteurs sont conservés. | engine_dropped |
| CREATE SEQUENCE (MariaDB) | non crééeMySQL n'a pas de séquences. | sequence_not_converted |
| views, triggers, procedures, functions and events | listés dans le rapportIls sont listés pour que vous les recréiez ; leur code nomme souvent son definer et des fonctions du serveur. | not_converted_objects |
| NOT NULL columns with values that become NULL | NOT NULL retiréUne colonne dont des valeurs ont dû devenir NULL ne peut pas garder NOT NULL, sinon le chargement s'arrêterait. | not_null_relaxed |
| text that isn't valid in its character set | les octets invalides deviennent le caractère de remplacementLe script est en UTF-8 ; des octets qui ne le sont pas arrêteraient le chargement. | invalid_utf8_replaced |
| text decoded twice (ñ) | copié tel quelLe dump contient exactement ces caractères, ils sont donc copiés ; le rapport les signale. | mojibake_suspected |
| dumps without CREATE TABLE | types déduits des valeursUn dump fait avec --no-create-info ne contient que des lignes, donc les types viennent des valeurs. | no_schema |
| geometries in a dump without CREATE TABLE | GEOMETRYLe format de géométrie de MySQL est reconnu à partir des valeurs. | |
| SET NAMES utf8 from utf8mb4 tables | converti, avec un avertissementLe mysqldump de MySQL 5.x écrit par défaut en utf8 sur 3 octets et remplace chaque emoji par un point d'interrogation avant qu'un convertisseur ne voie le fichier. | dump_lost_four_byte_chars |
| dumps without SET NAMES whose text isn't UTF-8 | lu comme Latin-1 (Windows-1252)Le latin1 de MySQL est le Windows-1252, l'encodage habituel de ces dumps. | charset_guessed |
| sjis, cp932, gbk, big5 dumps | lu comme UTF-8, avec un avertissementCes encodages ne sont pas encore décodés. | unsupported_charset |
| UNHEX('..'), CONVERT(b'..', UNSIGNED), CONVERT(".." USING x), ST_GeomFromText('..') in rows | évaluéesCertains outils de dump écrivent les valeurs sous forme de ces appels ; ils sont lus comme les valeurs qu'ils produisent. | |
| other expressions in rows | NULLUn convertisseur qui n'exécute pas de base de données ne peut pas les évaluer. | expression_value |
| DEFAULT in VALUES | la valeur par défaut de la colonneUne valeur par défaut littérale est copiée dans la ligne. | default_keyword_filled |
| DEFAULT in VALUES without a literal default | NULLIl n'y a aucune valeur à copier. | default_keyword_null |
| REPLACE and INSERT IGNORE | lignes simplesUn dump a une ligne par clé, donc les lignes sont les mêmes. | replace_as_insert |
| types IntoSQL doesn't know | LONGBLOBUn blob contient les octets de n'importe quelle valeur ; changez le type après le chargement. | unknown_type |
| values that don't fit their column | NULLUn dump endommagé ou écrit à la main peut contenir des valeurs que sa colonne n'accepte pas ; elles deviennent NULL pour que le reste se charge. | invalid_value_null |
| unreadable geometries | NULLDes octets qui ne forment pas une géométrie ne peuvent pas être stockés comme telle. | bad_geometry |
| TIMESTAMP | conservé, chargé dans le fuseau horaire indiqué par le dumpLe script définit le même fuseau horaire que le dump, donc chaque instant reste le même. | |
| VECTOR(n) (MariaDB 11.7+) | json avec les flottants en tableauMySQL 5.7 et 8.0 n'ont pas de type vector ; un tableau JSON garde chaque flottant dans toutes les versions. | 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.
mysql --default-character-set=utf8mb4 mydb < mysql.mysql.sqlLes 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
Pas de réponse ici ? Écrivez-nous depuis la page de contact, une personne vous répond. Page de contact
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.