MariaDB のダンプを古いまたは新しい MariaDB へ移す
mariadb-dump、mysqldump、phpMyAdmin、Adminer のダンプ (.sql または .sql.gz) をドロップすると、MariaDB 10.11 以降で読み込めるスクリプトをダウンロードできます。UUID、INET4、INET6、JSON、シーケンスはそのまま残り、VECTOR は 11.7 より前のバージョン向けに浮動小数点数の JSON 配列になります。すべての変更はレポートに記載されます。
18 行を変換、修正なし、却下なし
shop_2024_mariadb.sql のテーブルMariaDB 11.8.9-MariaDB-ubu2404 のダンプ · mariadb-dump で作成 · utf8mb4
customers8 行
8 列 id int(10) 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 last_ip inet6 orders10 行
12 列 id int(10) unsigned not null customer_id int(10) unsigned not null status enum('pending','paid','shipped','cancelled') not null total decimal(10,2) not null items smallint(5) unsigned not null ordered_at datetime not null shipped_at datetime note varchar(255) order_ref uuid not null invoice int(11) not null details json updated_at timestamp not null
-- Written by IntoSQL from a MySQL dump. Load it with: mariadb --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 SEQUENCE `invoice_numbers` START WITH 1000 MINVALUE 1 MAXVALUE 9223372036854775806 INCREMENT BY 1;
SELECT SETVAL(`invoice_numbers`, 2000, 0);
CREATE TABLE `customers` (
`id` int(10) 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,
`last_ip` inet6 DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uq_email` (`email`)
) ENGINE=InnoDB AUTO_INCREMENT=1001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci COMMENT='People who bought at least once';
CREATE TABLE `orders` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`customer_id` int(10) unsigned NOT NULL,
`status` enum('pending','paid','shipped','cancelled') NOT NULL DEFAULT 'pending',
`total` decimal(10,2) NOT NULL,
`items` smallint(5) unsigned NOT NULL DEFAULT 1,
`ordered_at` datetime NOT NULL,
`shipped_at` datetime DEFAULT NULL,
`note` varchar(255) DEFAULT NULL,
`order_ref` uuid NOT NULL,
`invoice` int(11) NOT NULL DEFAULT (nextval(`invoice_numbers`)),
`details` json 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_uca1400_ai_ci;
INSERT INTO `customers` (`id`,`name`,`email`,`country`,`is_active`,`signed_up`,`created_at`,`last_ip`) VALUES (1,'Ana Martínez','ana@example.com','MX',1,'2023-01-15','2023-01-15 10:24:00','::ffff:203.0.113.7'),(2,'Zoë Müller','zoe@example.de','DE',1,'2023-02-03','2023-02-03 08:11:42','2001:db8::1'),(3,'José Peña','jose@example.es','ES',0,'2023-03-21','2023-03-21 19:05:17',NULL),(4,'李雷','lilei@example.cn','CN',1,'2023-05-09','2023-05-09 02:40:00','::ffff:198.51.100.23'),(5,'Noah O\'Brien','noah@example.ie','IE',1,'0000-00-00','2023-06-30 14:00:00',NULL),(6,'Amélie Laurent','amelie@example.fr','FR',1,'2024-01-02','2024-01-02 09:30:00','2001:db8:85a3::8a2e:370:7334'),(7,'Ravi Patel','ravi@example.in','IN',0,'2024-02-29','2024-02-29 23:59:59','::ffff:192.0.2.200'),(8,'Sofia Rossi 🌻','sofia@example.it','IT',1,'2024-04-12','2024-04-12 12:12:12',NULL);
INSERT INTO `orders` (`id`,`customer_id`,`status`,`total`,`items`,`ordered_at`,`shipped_at`,`note`,`order_ref`,`invoice`,`details`,`updated_at`) VALUES (1,1,'shipped',129.90,3,'2024-03-01 10:00:00','2024-03-02 16:30:00',NULL,'0b7a4c2e-3f1d-4e8a-9c55-1a2b3c4d5e6f',1000,'{\"gift\": false}','2024-03-02 16:30:00'),(2,2,'paid',54.00,1,'2024-03-02 11:15:00',NULL,'Gift wrap 🎁','1c8b5d3f-4a2e-4f9b-8d66-2b3c4d5e6f70',1001,'{\"gift\": true, \"wrap\": \"red\"}','2024-03-02 11:20:00'),(3,1,'cancelled',12.50,1,'2024-03-03 09:45:00',NULL,'Customer changed their mind','2d9c6e4a-5b3f-4a0c-9e77-3c4d5e6f7081',1002,NULL,'2024-03-03 10:00:00'),(4,4,'shipped',980.00,12,'2024-03-05 02:10:00','2024-03-07 08:00:00','请小心轻放','3e0d7f5b-6c4a-4b1d-8f88-4d5e6f708192',1003,'{\"fragile\": true}','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','4f1e806c-7d5b-4c2e-9a99-5e6f708192a3',1004,NULL,'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\"','50f2917d-8e6c-4d3f-8baa-6f708192a3b4',1005,'{\"fragile\": true}','2024-03-11 09:00:00'),(7,8,'paid',76.20,2,'2024-03-11 18:45:00',NULL,NULL,'6103a28e-9f7d-4e40-9cbb-708192a3b4c5',1006,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','7214b39f-a08e-4f51-8dcc-8192a3b4c5d6',1007,NULL,'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','8325c4a0-b19f-4062-9edd-92a3b4c5d6e7',1008,'{\"parcels\": [1, 2]}','2024-03-15 10:00:00'),(10,7,'paid',1499.00,1,'2024-03-15 21:05:00',NULL,'C:\\Users\\ravi\\invoice.pdf','9436d5b1-c2a0-4173-8fee-a3b4c5d6e7f8',1009,NULL,'2024-03-15 21:05:00');
SET UNIQUE_CHECKS = 1;
SET FOREIGN_KEY_CHECKS = 1;
修正
修正が必要な箇所はありませんでした。
ファイルはこのコンピューター上で変換され、アップロードされることはありません。
その他のサンプル:
ファイルとスクリプトで変わること
各行はコンバーターが適用するルールです。ルールによってデータが変わったときにレポートに書かれる行も示します。
utf8mb4_0900_* and utf8mb4_uca1400_* collations
utf8mb4_0900_* は utf8mb4_unicode_520_ci (バイナリのものは utf8mb4_bin)
MariaDB は新しい照合順序を知りません。これが、多くの MySQL 8 のダンプが他の環境で読み込めない原因のエラーです。unicode_520 が同じ Unicode の規則に最も近い照合順序です。
レポートの行: collation_replaced
zero, partial or impossible dates (0000-00-00, 2024-02-30)
保持
スクリプトは ALLOW_INVALID_DATES を有効にし、NO_ZERO_DATE なしで読み込むため、MariaDB はソースと同じ値を保持します。
TIME
TIME、期間を含む
同じ型で、範囲も同じです。
TINYINT(1), BOOL
TINYINT(1)
同じ型で、値も同じです。
UNSIGNED and ZEROFILL
保持
同じ型です。
ENUM and SET, the '' error value included
保持
同じ型です。スクリプトは strict モードなしで読み込むため、エラー値もそのまま入ります。
JSON
JSON (MariaDB がチェックする LONGTEXT)
MariaDB は同じ 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
INVISIBLE 列
非表示の列は MySQL では 8.0.23 から、MariaDB では 10.3 から使えます。
CHECK constraints
保持
同じチェック制約を、項ごとに変換します。
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)
保持
MySQL にはこれらの型がありません。MariaDB がこれらに書き出すテキストを保持します。
BINARY, VARBINARY, BLOB
保持
バイトはバイトのままです。
PARTITION BY
1 つのテーブル
行は同じです。必要ならテーブルをもう一度パーティション分割してください。
レポートの行: partitions_dropped
WITH SYSTEM VERSIONING (MariaDB)
WITH SYSTEM VERSIONING、現在の行から開始
ダンプには現在の行しか含まれません。MySQL にはシステムバージョニングがありません。
Aria, ColumnStore, CONNECT, Spider, RocksDB (MariaDB)
保持
MySQL にはこれらのエンジンがありません。他のエンジンはすべてそのままです。
CREATE SEQUENCE (MariaDB)
次の値を持つ CREATE SEQUENCE
MySQL にはシーケンスがありません。
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
スクリプトは vector 型のない MariaDB 10.11 以降で読み込めます。JSON 配列はすべての浮動小数点数を保ち、VEC_FromText で読み戻せます。
レポートの行: type_replaced
| ファイルでは | スクリプトでは | レポートの行 |
|---|---|---|
| utf8mb4_0900_* and utf8mb4_uca1400_* collations | utf8mb4_0900_* は utf8mb4_unicode_520_ci (バイナリのものは utf8mb4_bin)MariaDB は新しい照合順序を知りません。これが、多くの MySQL 8 のダンプが他の環境で読み込めない原因のエラーです。unicode_520 が同じ Unicode の規則に最も近い照合順序です。 | collation_replaced |
| zero, partial or impossible dates (0000-00-00, 2024-02-30) | 保持スクリプトは ALLOW_INVALID_DATES を有効にし、NO_ZERO_DATE なしで読み込むため、MariaDB はソースと同じ値を保持します。 | |
| TIME | TIME、期間を含む同じ型で、範囲も同じです。 | |
| TINYINT(1), BOOL | TINYINT(1)同じ型で、値も同じです。 | |
| UNSIGNED and ZEROFILL | 保持同じ型です。 | |
| ENUM and SET, the '' error value included | 保持同じ型です。スクリプトは strict モードなしで読み込むため、エラー値もそのまま入ります。 | |
| JSON | JSON (MariaDB がチェックする LONGTEXT)MariaDB は同じ 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 | INVISIBLE 列非表示の列は MySQL では 8.0.23 から、MariaDB では 10.3 から使えます。 | |
| CHECK constraints | 保持同じチェック制約を、項ごとに変換します。 | |
| 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) | 保持MySQL にはこれらの型がありません。MariaDB がこれらに書き出すテキストを保持します。 | |
| BINARY, VARBINARY, BLOB | 保持バイトはバイトのままです。 | |
| PARTITION BY | 1 つのテーブル行は同じです。必要ならテーブルをもう一度パーティション分割してください。 | partitions_dropped |
| WITH SYSTEM VERSIONING (MariaDB) | WITH SYSTEM VERSIONING、現在の行から開始ダンプには現在の行しか含まれません。MySQL にはシステムバージョニングがありません。 | |
| Aria, ColumnStore, CONNECT, Spider, RocksDB (MariaDB) | 保持MySQL にはこれらのエンジンがありません。他のエンジンはすべてそのままです。 | |
| CREATE SEQUENCE (MariaDB) | 次の値を持つ CREATE SEQUENCEMySQL にはシーケンスがありません。 | |
| 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+) | 浮動小数点数の配列を持つ jsonスクリプトは vector 型のない MariaDB 10.11 以降で読み込めます。JSON 配列はすべての浮動小数点数を保ち、VEC_FromText で読み戻せます。 | type_replaced |
スクリプトを MariaDB に読み込む
スクリプトはテーブルを作成して行をコピーしてから、キー、インデックス、外部キーを追加します。そのため読み込みが速く、最初のエラーで止まります。
mariadb --default-character-set=utf8mb4 mydb < mariadb.mariadb.sql外部キーはダンプが宣言するとおりに作成し、mysqldump と同様に、行の読み込み中は FOREIGN_KEY_CHECKS=0 にします。
大きなダンプでは、サーバーと同じマシンでクライアントを実行し、1 行がとても大きい場合は max_allowed_packet を上げてください。
IntoSQL Pro なら、デスクトップアプリやコマンドラインからファイルを MariaDB に直接読み込めます。スクリプトを書き出す必要はありません。
MariaDB を最適な方法でダンプする
コンバーターはダンプの内容を読み取ります。次のオプションを使うと、より多くのデータがダンプに残ります。
- --default-character-set=utf8mb4 を使うと、絵文字などの 4 バイト文字が保たれます。utf8mb3 のダンプでは、コンバーターに届く前にこれらが失われます。
- --hex-blob はバイナリ列と VECTOR の値を 16 進数で書き出すため、システム間でコピーしても壊れません。
- --routines --triggers --events を使うとこれらのオブジェクトがダンプに含まれ、レポートで一覧できます。
変換されないもの
ビュー、トリガー、プロシージャ、関数など MariaDB 独自の言語で書かれたオブジェクトは、黙って削除されることなくレポートに名前で記載されます。読み込む先の MariaDB のバージョンで確認してから作り直せます。
MariaDB のバージョン間の移行に関する質問
ここに答えがない場合は、お問い合わせページからご連絡ください。担当者が返信します。 お問い合わせページ
ダンプはアップロードされますか?
いいえ。コンバーターはブラウザ上で動作し、ダンプをディスクから少しずつ読み込むため、ダンプがコンピューターの外に出ることはありません。デスクトップアプリとコマンドラインも、お使いのコンピューター上で変換します。
ダンプはどのくらいの大きさまで扱えますか?
コンバーターはダンプ全体をメモリに保持しません。ファイルを範囲ごとに 2 回読み、読みながらスクリプトを書き出します。数 GB のダンプも、ブラウザ、デスクトップアプリ、コマンドラインで変換できます。
どの MariaDB バージョンのダンプに対応していますか?
MariaDB 10.3 から 12 の mariadb-dump と mysqldump で作成したダンプで、INSERT はテーブルごとに 1 つでも行ごとに 1 つでも構いません。すべてのテスト用ダンプは MariaDB 10.11、11.4、11.8 で作成し、ソースとセル単位で比較しています。
UUID、INET6、JSON、VECTOR の列は保持されますか?
そのままです。VECTOR も含まれますが、MariaDB 11.7 以降が必要です。JSON は妥当性チェック付きの JSON のままです。
AUTO_INCREMENT の値とシーケンスは保持されますか?
はい。AUTO_INCREMENT とシーケンスはそのままで、シーケンスから値を取るデフォルトは引き続きそこから取ります。
ストアドプロシージャとトリガーはどうなりますか?
変換はせず、レポートに名前で一覧します。作り直す前に、読み込み先の MariaDB でそれぞれを確認できます。
スクリプトはどの MariaDB バージョンで読み込めますか?
ダンプを書き出したバージョンにかかわらず、MariaDB 10.11 以降です。すべてのテスト用ダンプを 10.11 と 11.4 で読み込みます。