MySQL のダンプを古いまたは新しい MySQL へ移す
MySQL 5.5 から 9 の mysqldump、mysqlpump、phpMyAdmin、Adminer のダンプ (.sql または .sql.gz) をドロップすると、MySQL 5.7 以降で読み込めるスクリプトをダウンロードできます。utf8mb4_0900_ai_ci など MySQL 8 以降にしかない照合順序は utf8mb4_unicode_520_ci になり、すべての変更はレポートに記載されます。
18 行を変換、修正 2 件、却下なし
shop_2024.sql のテーブルMySQL 8.0.46 のダンプ · mysqldump で作成 · utf8mb4
customers8 行1
7 列 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 行1
9 列 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;
修正
- customers は照合順序 utf8mb4_0900_ai_ci を使っていますが、MySQL にはないため utf8mb4_unicode_520_ci を使います。テキストの並び順や比較が少し変わる場合があります。
- orders は照合順序 utf8mb4_0900_ai_ci を使っていますが、MySQL にはないため utf8mb4_unicode_520_ci を使います。テキストの並び順や比較が少し変わる場合があります。
ファイルはこのコンピューター上で変換され、アップロードされることはありません。
その他のサンプル:
ファイルとスクリプトで変わること
各行はコンバーターが適用するルールです。ルールによってデータが変わったときにレポートに書かれる行も示します。
utf8mb4_0900_* and utf8mb4_uca1400_* collations
utf8mb4_unicode_520_ci (バイナリのものは utf8mb4_bin)
MySQL は新しい照合順序を知りません。これが、多くの MySQL 8 のダンプが他の環境で読み込めない原因のエラーです。unicode_520 が同じ Unicode の規則に最も近い照合順序です。
レポートの行: collation_replaced
zero, partial or impossible dates (0000-00-00, 2024-02-30)
保持
スクリプトは ALLOW_INVALID_DATES を有効にし、NO_ZERO_DATE なしで読み込むため、MySQL はソースと同じ値を保持します。
TIME
TIME、期間を含む
同じ型で、範囲も同じです。
TINYINT(1), BOOL
TINYINT(1)
同じ型で、値も同じです。
UNSIGNED and ZEROFILL
保持
同じ型です。
ENUM and SET, the '' error value included
保持
同じ型です。スクリプトは strict モードなしで読み込むため、エラー値もそのまま入ります。
JSON
JSON
MySQL は同じ JSON テキストを読みます。
NUL bytes in text
保持
値は、ソースと同じエスケープでコピーします。
AUTO_INCREMENT
テーブルのカウンター付きの AUTO_INCREMENT
カウンターは、MyISAM のグループごとのカウンターも含め、ソースの続きから進みます。
MyISAM AUTO_INCREMENT on the second column of a key, in a table that isn't MyISAM in the dump
列のインデックスと、テーブルに 1 つのカウンター
InnoDB が列を採番するのは、その列がインデックスの先頭にある場合だけで、カウンターはテーブル全体で 1 つです。
レポートの行: myisam_group_autoincrement
ON UPDATE CURRENT_TIMESTAMP
保持
同じ句で、列の秒の小数部も同じです。
generated columns
ソースと同じ VIRTUAL または STORED
同じ式を、項ごとに変換します。
generated columns with functions IntoSQL doesn't read
普通の列
IntoSQL が読めない式は、普通の列とレポートの 1 行になります。
レポートの行: generated_not_translated
INVISIBLE columns
通常の列
非表示の列は MySQL では 8.0.23 から、MariaDB では 10.3 から使えます。
レポートの行: invisible_column
CHECK constraints
保持 (MySQL 5.7 は構文を解析して無視します)
同じチェック制約を、項ごとに変換します。
CHECK constraints with functions IntoSQL doesn't read
作成しない
IntoSQL が読めないチェック制約は省き、レポートに記載します。
レポートの行: check_skipped
CHECK ... NOT ENFORCED
作成しない
MySQL 5.7 と MariaDB は、チェック制約を適用せずに保持することができず、違反する行がある可能性があります。
レポートの行: check_not_enforced
expression defaults, and defaults on TEXT, BLOB, JSON and GEOMETRY
デフォルト値なし
MySQL では 8.0.13 から使えます。スクリプトは 5.7 でも読み込めるよう、これらを省いてレポートに記載します。MariaDB では使えます。
レポートの行: default_not_translated
functional indexes, KEY ((expr))
作成しない
MySQL は 8.0.13 から式にインデックスを作れますが、MariaDB は作れません。インデックス付きの生成列で同じことができます。
レポートの行: index_skipped
keys and indexes on a prefix, c(20)
保持
同じインデックスです。
FULLTEXT indexes
保持
同じインデックスです。MATCH ... AGAINST はこれまでどおり使えます。
SPATIAL indexes
保持
同じインデックスです。
foreign keys
保持、FOREIGN_KEY_CHECKS=0 で読み込み
同じキーです。行はソースのダンプと同じように読み込まれます。
GEOMETRY, POINT, POLYGON...
保持、各値の SRID 付き
サーバー自身のジオメトリのバイト列を、SRID を含めてコピーします。
INET4, INET6, UUID (MariaDB)
varchar(15), varchar(39), char(36)
MySQL にはこれらの型がありません。MariaDB がこれらに書き出すテキストを保持します。
レポートの行: type_replaced
BINARY, VARBINARY, BLOB
保持
バイトはバイトのままです。
PARTITION BY
1 つのテーブル
行は同じです。必要ならテーブルをもう一度パーティション分割してください。
レポートの行: partitions_dropped
WITH SYSTEM VERSIONING (MariaDB)
現在の行を持つテーブル
ダンプには現在の行しか含まれません。MySQL にはシステムバージョニングがありません。
レポートの行: system_versioning_dropped
Aria, ColumnStore, CONNECT, Spider, RocksDB (MariaDB)
InnoDB
MySQL にはこれらのエンジンがありません。他のエンジンはすべてそのままです。
レポートの行: engine_dropped
CREATE SEQUENCE (MariaDB)
作成しない
MySQL にはシーケンスがありません。
レポートの行: sequence_not_converted
views, triggers, procedures, functions and events
レポートに記載
作り直せるよう一覧にします。これらのコードには、定義者やサーバーの機能が書かれていることがよくあります。
レポートの行: not_converted_objects
NOT NULL columns with values that become NULL
NOT NULL を削除
値を NULL にする必要があった列は NOT NULL を保てません。保つと読み込みが止まります。
レポートの行: not_null_relaxed
text that isn't valid in its character set
不正なバイトを置換文字に
スクリプトは UTF-8 です。UTF-8 でないバイトがあると読み込みが止まります。
レポートの行: invalid_utf8_replaced
text decoded twice (ñ)
そのままコピー
ダンプにはまさにこの文字が含まれているため、そのままコピーし、レポートで指摘します。
レポートの行: mojibake_suspected
dumps without CREATE TABLE
値から読み取った型
--no-create-info で作成したダンプには行しかないため、型は値から決まります。
レポートの行: no_schema
geometries in a dump without CREATE TABLE
GEOMETRY
MySQL のジオメトリ形式を値から認識します。
SET NAMES utf8 from utf8mb4 tables
変換し、警告を表示
MySQL 5.x の mysqldump は既定で 3 バイトの utf8 で書き出し、コンバーターがファイルを読む前にすべての絵文字を疑問符に置き換えます。
レポートの行: dump_lost_four_byte_chars
dumps without SET NAMES whose text isn't UTF-8
Latin-1 (Windows-1252) として読み込み
MySQL の latin1 は Windows-1252 で、こうしたダンプでよく使われる文字コードです。
レポートの行: charset_guessed
sjis, cp932, gbk, big5 dumps
UTF-8 として読み込み、警告を表示
これらの文字コードはまだデコードできません。
レポートの行: unsupported_charset
UNHEX('..'), CONVERT(b'..', UNSIGNED), CONVERT(".." USING x), ST_GeomFromText('..') in rows
評価
一部のダンプツールは値をこうした関数呼び出しとして書き出します。これらは生成される値として読み込みます。
other expressions in rows
NULL
データベースを実行しないコンバーターでは、これらを評価できません。
レポートの行: expression_value
DEFAULT in VALUES
列のデフォルト値
リテラルのデフォルト値を行にコピーします。
レポートの行: default_keyword_filled
DEFAULT in VALUES without a literal default
NULL
コピーする値がありません。
レポートの行: default_keyword_null
REPLACE and INSERT IGNORE
通常の行
ダンプではキーごとに 1 行なので、行は同じです。
レポートの行: replace_as_insert
types IntoSQL doesn't know
LONGBLOB
BLOB はどんな値のバイト列も保持できます。読み込み後に型を変更してください。
レポートの行: unknown_type
values that don't fit their column
NULL
破損したダンプや手書きのダンプには、列が保持できない値が含まれることがあります。それらを NULL にして、残りを読み込みます。
レポートの行: invalid_value_null
unreadable geometries
NULL
ジオメトリでないバイト列は、ジオメトリとして保存できません。
レポートの行: bad_geometry
TIMESTAMP
保持、ダンプが示すタイムゾーンで読み込み
スクリプトはダンプと同じタイムゾーンを設定するため、すべての瞬間が同じになります。
VECTOR(n) (MariaDB 11.7+)
浮動小数点数の配列を持つ json
MySQL 5.7 と 8.0 には vector 型がありません。JSON 配列はどのバージョンでもすべての浮動小数点数を保ちます。
レポートの行: type_replaced
| ファイルでは | スクリプトでは | レポートの行 |
|---|---|---|
| utf8mb4_0900_* and utf8mb4_uca1400_* collations | utf8mb4_unicode_520_ci (バイナリのものは utf8mb4_bin)MySQL は新しい照合順序を知りません。これが、多くの MySQL 8 のダンプが他の環境で読み込めない原因のエラーです。unicode_520 が同じ Unicode の規則に最も近い照合順序です。 | collation_replaced |
| zero, partial or impossible dates (0000-00-00, 2024-02-30) | 保持スクリプトは ALLOW_INVALID_DATES を有効にし、NO_ZERO_DATE なしで読み込むため、MySQL はソースと同じ値を保持します。 | |
| TIME | TIME、期間を含む同じ型で、範囲も同じです。 | |
| TINYINT(1), BOOL | TINYINT(1)同じ型で、値も同じです。 | |
| UNSIGNED and ZEROFILL | 保持同じ型です。 | |
| ENUM and SET, the '' error value included | 保持同じ型です。スクリプトは strict モードなしで読み込むため、エラー値もそのまま入ります。 | |
| JSON | JSONMySQL は同じ JSON テキストを読みます。 | |
| NUL bytes in text | 保持値は、ソースと同じエスケープでコピーします。 | |
| AUTO_INCREMENT | テーブルのカウンター付きの AUTO_INCREMENTカウンターは、MyISAM のグループごとのカウンターも含め、ソースの続きから進みます。 | |
| MyISAM AUTO_INCREMENT on the second column of a key, in a table that isn't MyISAM in the dump | 列のインデックスと、テーブルに 1 つのカウンターInnoDB が列を採番するのは、その列がインデックスの先頭にある場合だけで、カウンターはテーブル全体で 1 つです。 | myisam_group_autoincrement |
| ON UPDATE CURRENT_TIMESTAMP | 保持同じ句で、列の秒の小数部も同じです。 | |
| generated columns | ソースと同じ VIRTUAL または STORED同じ式を、項ごとに変換します。 | |
| generated columns with functions IntoSQL doesn't read | 普通の列IntoSQL が読めない式は、普通の列とレポートの 1 行になります。 | generated_not_translated |
| INVISIBLE columns | 通常の列非表示の列は MySQL では 8.0.23 から、MariaDB では 10.3 から使えます。 | invisible_column |
| CHECK constraints | 保持 (MySQL 5.7 は構文を解析して無視します)同じチェック制約を、項ごとに変換します。 | |
| CHECK constraints with functions IntoSQL doesn't read | 作成しないIntoSQL が読めないチェック制約は省き、レポートに記載します。 | check_skipped |
| CHECK ... NOT ENFORCED | 作成しないMySQL 5.7 と MariaDB は、チェック制約を適用せずに保持することができず、違反する行がある可能性があります。 | check_not_enforced |
| expression defaults, and defaults on TEXT, BLOB, JSON and GEOMETRY | デフォルト値なしMySQL では 8.0.13 から使えます。スクリプトは 5.7 でも読み込めるよう、これらを省いてレポートに記載します。MariaDB では使えます。 | default_not_translated |
| functional indexes, KEY ((expr)) | 作成しないMySQL は 8.0.13 から式にインデックスを作れますが、MariaDB は作れません。インデックス付きの生成列で同じことができます。 | index_skipped |
| keys and indexes on a prefix, c(20) | 保持同じインデックスです。 | |
| FULLTEXT indexes | 保持同じインデックスです。MATCH ... AGAINST はこれまでどおり使えます。 | |
| SPATIAL indexes | 保持同じインデックスです。 | |
| foreign keys | 保持、FOREIGN_KEY_CHECKS=0 で読み込み同じキーです。行はソースのダンプと同じように読み込まれます。 | |
| GEOMETRY, POINT, POLYGON... | 保持、各値の SRID 付きサーバー自身のジオメトリのバイト列を、SRID を含めてコピーします。 | |
| INET4, INET6, UUID (MariaDB) | varchar(15), varchar(39), char(36)MySQL にはこれらの型がありません。MariaDB がこれらに書き出すテキストを保持します。 | type_replaced |
| BINARY, VARBINARY, BLOB | 保持バイトはバイトのままです。 | |
| PARTITION BY | 1 つのテーブル行は同じです。必要ならテーブルをもう一度パーティション分割してください。 | partitions_dropped |
| WITH SYSTEM VERSIONING (MariaDB) | 現在の行を持つテーブルダンプには現在の行しか含まれません。MySQL にはシステムバージョニングがありません。 | system_versioning_dropped |
| Aria, ColumnStore, CONNECT, Spider, RocksDB (MariaDB) | InnoDBMySQL にはこれらのエンジンがありません。他のエンジンはすべてそのままです。 | engine_dropped |
| CREATE SEQUENCE (MariaDB) | 作成しないMySQL にはシーケンスがありません。 | sequence_not_converted |
| views, triggers, procedures, functions and events | レポートに記載作り直せるよう一覧にします。これらのコードには、定義者やサーバーの機能が書かれていることがよくあります。 | not_converted_objects |
| NOT NULL columns with values that become NULL | NOT NULL を削除値を NULL にする必要があった列は NOT NULL を保てません。保つと読み込みが止まります。 | not_null_relaxed |
| text that isn't valid in its character set | 不正なバイトを置換文字にスクリプトは UTF-8 です。UTF-8 でないバイトがあると読み込みが止まります。 | invalid_utf8_replaced |
| text decoded twice (ñ) | そのままコピーダンプにはまさにこの文字が含まれているため、そのままコピーし、レポートで指摘します。 | mojibake_suspected |
| dumps without CREATE TABLE | 値から読み取った型--no-create-info で作成したダンプには行しかないため、型は値から決まります。 | no_schema |
| geometries in a dump without CREATE TABLE | GEOMETRYMySQL のジオメトリ形式を値から認識します。 | |
| SET NAMES utf8 from utf8mb4 tables | 変換し、警告を表示MySQL 5.x の mysqldump は既定で 3 バイトの utf8 で書き出し、コンバーターがファイルを読む前にすべての絵文字を疑問符に置き換えます。 | dump_lost_four_byte_chars |
| dumps without SET NAMES whose text isn't UTF-8 | Latin-1 (Windows-1252) として読み込みMySQL の latin1 は Windows-1252 で、こうしたダンプでよく使われる文字コードです。 | charset_guessed |
| sjis, cp932, gbk, big5 dumps | UTF-8 として読み込み、警告を表示これらの文字コードはまだデコードできません。 | unsupported_charset |
| UNHEX('..'), CONVERT(b'..', UNSIGNED), CONVERT(".." USING x), ST_GeomFromText('..') in rows | 評価一部のダンプツールは値をこうした関数呼び出しとして書き出します。これらは生成される値として読み込みます。 | |
| other expressions in rows | NULLデータベースを実行しないコンバーターでは、これらを評価できません。 | expression_value |
| DEFAULT in VALUES | 列のデフォルト値リテラルのデフォルト値を行にコピーします。 | default_keyword_filled |
| DEFAULT in VALUES without a literal default | NULLコピーする値がありません。 | default_keyword_null |
| REPLACE and INSERT IGNORE | 通常の行ダンプではキーごとに 1 行なので、行は同じです。 | replace_as_insert |
| types IntoSQL doesn't know | LONGBLOBBLOB はどんな値のバイト列も保持できます。読み込み後に型を変更してください。 | unknown_type |
| values that don't fit their column | NULL破損したダンプや手書きのダンプには、列が保持できない値が含まれることがあります。それらを NULL にして、残りを読み込みます。 | invalid_value_null |
| unreadable geometries | NULLジオメトリでないバイト列は、ジオメトリとして保存できません。 | bad_geometry |
| TIMESTAMP | 保持、ダンプが示すタイムゾーンで読み込みスクリプトはダンプと同じタイムゾーンを設定するため、すべての瞬間が同じになります。 | |
| VECTOR(n) (MariaDB 11.7+) | 浮動小数点数の配列を持つ jsonMySQL 5.7 と 8.0 には vector 型がありません。JSON 配列はどのバージョンでもすべての浮動小数点数を保ちます。 | type_replaced |
スクリプトを MySQL に読み込む
スクリプトはテーブルを作成して行をコピーしてから、キー、インデックス、外部キーを追加します。そのため読み込みが速く、最初のエラーで止まります。
mysql --default-character-set=utf8mb4 mydb < mysql.mysql.sql外部キーはダンプが宣言するとおりに作成し、行の読み込み中は FOREIGN_KEY_CHECKS=0 にするため、存在しない行を参照する行があっても読み込みは止まりません。
大きなダンプでは、サーバーと同じマシンでクライアントを実行し、1 行がとても大きい場合は max_allowed_packet を上げてください。
IntoSQL Pro なら、デスクトップアプリやコマンドラインからファイルを MySQL に直接読み込めます。スクリプトを書き出す必要はありません。
MySQL を最適な方法でダンプする
コンバーターはダンプの内容を読み取ります。次のオプションを使うと、より多くのデータがダンプに残ります。
- --default-character-set=utf8mb4 を使うと、絵文字などの 4 バイト文字が残ります。utf8 のダンプでは、コンバーターが読む前にこれらの文字が失われます。
- --hex-blob はバイナリ列を 16 進数で書き出すため、システム間でコピーしても壊れません。
- --routines --triggers --events を使うとこれらのオブジェクトがダンプに含まれ、レポートに一覧できます。
変換されないもの
ビュー、トリガー、プロシージャ、関数など MySQL 独自の言語で書かれたオブジェクトは、黙って削除されることなくレポートに名前で記載されます。読み込む先の MySQL のバージョンで確認してから作り直せます。
MySQL のバージョン間の移行に関する質問
ここに答えがない場合は、お問い合わせページからご連絡ください。担当者が返信します。 お問い合わせページ
ダンプはアップロードされますか?
いいえ。コンバーターはブラウザ上で動作し、ダンプをディスクから少しずつ読み込むため、ダンプがコンピューターの外に出ることはありません。デスクトップアプリとコマンドラインも、お使いのコンピューター上で変換します。
ダンプはどのくらいの大きさまで扱えますか?
コンバーターはダンプ全体をメモリに保持しません。ファイルを範囲ごとに 2 回読み、読みながらスクリプトを書き出します。数 GB のダンプも、ブラウザ、デスクトップアプリ、コマンドラインで変換できます。
MariaDB のダンプも読み込めますか?
はい。mariadb-dump や MariaDB 10.3 から 12 のダンプも同じ方法で変換されます。MariaDB の INET6、INET4、UUID 列も対象です。
0000-00-00 の日付はどうなりますか?
MySQL はそのまま保持します。スクリプトは読み込み中、ゼロや不正な日付を受け付ける SQL モードを設定するため、値はそのまま届きます。
AUTO_INCREMENT の値は保持されますか?
はい。AUTO_INCREMENT はそのまま残り、テーブルのカウンターはダンプの続きから進みます。
TINYINT(1) は boolean になりますか?
変換元と同じく TINYINT(1) のままなので、すべての値が数値を保ちます。
ストアドプロシージャやトリガーはどうなりますか?
レポートに名前で記載し、変換はしません。読み込む先の MySQL のバージョンで確認してから作り直せます。ON UPDATE CURRENT_TIMESTAMP はそのまま残ります。
スクリプトはどの MySQL バージョンで読み込めますか?
MySQL 5.7 以降です。すべてのテスト用ダンプが 5.7 と 9 で読み込め、問題があれば最初のエラーで止まります。