本文へスキップ
IntoSQL ホーム

MariaDB のダンプを古いまたは新しい MariaDB へ移す

mariadb-dump、mysqldump、phpMyAdmin、Adminer のダンプ (.sql または .sql.gz) をドロップすると、MariaDB 10.11 以降で読み込めるスクリプトをダウンロードできます。UUID、INET4、INET6、JSON、シーケンスはそのまま残り、VECTOR は 11.7 より前のバージョン向けに浮動小数点数の JSON 配列になります。すべての変更はレポートに記載されます。

ファイル
sqlshop_2024_mariadb.sqlサンプルファイル、6.6 KB
データベース

18 行を変換、修正なし、却下なし

表示

shop_2024_mariadb.sql のテーブルMariaDB 11.8.9-MariaDB-ubu2404 のダンプ · mariadb-dump で作成 · utf8mb4

  • customers8 行
    8 列
    idint(10) unsigned not null
    namevarchar(100) not null
    emailvarchar(150) not null
    countrychar(2) not null
    is_activetinyint(1) not null
    signed_update not null
    created_attimestamp not null
    last_ipinet6
  • orders10 行
    12 列
    idint(10) unsigned not null
    customer_idint(10) unsigned not null
    statusenum('pending','paid','shipped','cancelled') not null
    totaldecimal(10,2) not null
    itemssmallint(5) unsigned not null
    ordered_atdatetime not null
    shipped_atdatetime
    notevarchar(255)
    order_refuuid not null
    invoiceint(11) not null
    detailsjson
    updated_attimestamp 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_* collationsutf8mb4_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 はソースと同じ値を保持します。
TIMETIME、期間を含む同じ型で、範囲も同じです。
TINYINT(1), BOOLTINYINT(1)同じ型で、値も同じです。
UNSIGNED and ZEROFILL保持同じ型です。
ENUM and SET, the '' error value included保持同じ型です。スクリプトは strict モードなしで読み込むため、エラー値もそのまま入ります。
JSONJSON (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 columnsINVISIBLE 列非表示の列は 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 BY1 つのテーブル行は同じです。必要ならテーブルをもう一度パーティション分割してください。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 NULLNOT 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 TABLEGEOMETRYMySQL のジオメトリ形式を値から認識します。
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-8Latin-1 (Windows-1252) として読み込みMySQL の latin1 は Windows-1252 で、こうしたダンプでよく使われる文字コードです。charset_guessed
sjis, cp932, gbk, big5 dumpsUTF-8 として読み込み、警告を表示これらの文字コードはまだデコードできません。unsupported_charset
UNHEX('..'), CONVERT(b'..', UNSIGNED), CONVERT(".." USING x), ST_GeomFromText('..') in rows評価一部のダンプツールは値をこうした関数呼び出しとして書き出します。これらは生成される値として読み込みます。
other expressions in rowsNULLデータベースを実行しないコンバーターでは、これらを評価できません。expression_value
DEFAULT in VALUES列のデフォルト値リテラルのデフォルト値を行にコピーします。default_keyword_filled
DEFAULT in VALUES without a literal defaultNULLコピーする値がありません。default_keyword_null
REPLACE and INSERT IGNORE通常の行ダンプではキーごとに 1 行なので、行は同じです。replace_as_insert
types IntoSQL doesn't knowLONGBLOBBLOB はどんな値のバイト列も保持できます。読み込み後に型を変更してください。unknown_type
values that don't fit their columnNULL破損したダンプや手書きのダンプには、列が保持できない値が含まれることがあります。それらを NULL にして、残りを読み込みます。invalid_value_null
unreadable geometriesNULLジオメトリでないバイト列は、ジオメトリとして保存できません。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 で読み込みます。