本文へスキップ
IntoSQL ホーム

MariaDB を MySQL に変換

mariadb-dump、mysqldump、phpMyAdmin、Adminer で作成したダンプ (.sql または .sql.gz) をドロップすると、同じテーブル、キー、インデックス、データを持つ MySQL スクリプトをダウンロードできます。MySQL がそのまま保持できない値と、引き継がないオブジェクトは、すべてレポートに記載されます。

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

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

表示

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

  • customers8 行2
    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_ipvarchar(39)
  • orders10 行2
    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_refchar(36) not null
    invoiceint(11) not null
    detailsjson
    updated_attimestamp 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(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` varchar(39) DEFAULT NULL,
  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(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` char(36) NOT NULL,
  `invoice` int(11) NOT NULL,
  `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_unicode_520_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;

修正

  1. customers は照合順序 utf8mb4_uca1400_ai_ci を使っていますが、MySQL にはないため utf8mb4_unicode_520_ci を使います。テキストの並び順や比較が少し変わる場合があります。
  2. customers の "last_ip" は inet6 ですが、MySQL にはないため、同じ値を持つ varchar(39) にしました。
  3. orders は照合順序 utf8mb4_uca1400_ai_ci を使っていますが、MySQL にはないため utf8mb4_unicode_520_ci を使います。テキストの並び順や比較が少し変わる場合があります。
  4. orders の "order_ref" は uuid ですが、MySQL にはないため、同じ値を持つ char(36) にしました。

確認が必要

  • 1 個のシーケンスは作成しません。MySQL にはシーケンスがありません。 アプリケーションで必要なら、次の値をテーブルに保持してください。
  • orders の "invoice" のデフォルト値は MySQL 用に書き換えられないため (a sequence)、列にデフォルト値はありません。 新しい行に必要なら、手動でデフォルト値を追加してください。

ファイルはこのコンピューター上で変換され、アップロードされることはありません。

その他のサンプル:

MariaDB から MySQL で変わること

各行はコンバーターが適用するルールです。ルールによってデータが変わったときにレポートに書かれる行も示します。

  • 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

MariaDB ではMySQL ではレポートの行
utf8mb4_0900_* and utf8mb4_uca1400_* collationsutf8mb4_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 はソースと同じ値を保持します。
TIMETIME、期間を含む同じ型で、範囲も同じです。
TINYINT(1), BOOLTINYINT(1)同じ型で、値も同じです。
UNSIGNED and ZEROFILL保持同じ型です。
ENUM and SET, the '' error value included保持同じ型です。スクリプトは strict モードなしで読み込むため、エラー値もそのまま入ります。
JSONJSONMySQL は同じ 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 BY1 つのテーブル行は同じです。必要ならテーブルをもう一度パーティション分割してください。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 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+)浮動小数点数の配列を持つ jsonMySQL 5.7 と 8.0 には vector 型がありません。JSON 配列はどのバージョンでもすべての浮動小数点数を保ちます。type_replaced

スクリプトを MySQL に読み込む

スクリプトはテーブルを作成して行をコピーしてから、キー、インデックス、外部キーを追加します。そのため読み込みが速く、最初のエラーで止まります。

mysql --default-character-set=utf8mb4 mydb < mariadb.mysql.sql

外部キーはダンプが宣言するとおりに作成し、行の読み込み中は FOREIGN_KEY_CHECKS=0 にするため、存在しない行を参照する行があっても読み込みは止まりません。

大きなダンプでは、サーバーと同じマシンでクライアントを実行し、1 行がとても大きい場合は max_allowed_packet を上げてください。

IntoSQL Pro なら、デスクトップアプリやコマンドラインからファイルを MySQL に直接読み込めます。スクリプトを書き出す必要はありません。

MariaDB を最適な方法でダンプする

コンバーターはダンプの内容を読み取ります。次のオプションを使うと、より多くのデータがダンプに残ります。

  • --default-character-set=utf8mb4 を使うと、絵文字などの 4 バイト文字が保たれます。utf8mb3 のダンプでは、コンバーターに届く前にこれらが失われます。
  • --hex-blob はバイナリ列と VECTOR の値を 16 進数で書き出すため、システム間でコピーしても壊れません。
  • --routines --triggers --events を使うとこれらのオブジェクトがダンプに含まれ、レポートで一覧できます。

変換されないもの

ビュー、トリガー、ストアドプロシージャ、関数、イベントは MariaDB 独自の言語で書かれています。黙って削除することはなく、レポートに名前で一覧するので、MySQL 向けに書き直せます。

MariaDB から MySQL への変換に関する質問

ここに答えがない場合は、お問い合わせページからご連絡ください。担当者が返信します。 お問い合わせページ

ダンプはアップロードされますか?

いいえ。コンバーターはブラウザ上で動作し、ダンプをディスクから少しずつ読み込むため、ダンプがコンピューターの外に出ることはありません。デスクトップアプリとコマンドラインも、お使いのコンピューター上で変換します。

ダンプはどのくらいの大きさまで扱えますか?

コンバーターはダンプ全体をメモリに保持しません。ファイルを範囲ごとに 2 回読み、読みながらスクリプトを書き出します。数 GB のダンプも、ブラウザ、デスクトップアプリ、コマンドラインで変換できます。

どの MariaDB バージョンのダンプに対応していますか?

MariaDB 10.3 から 12 の mariadb-dump と mysqldump で作成したダンプで、INSERT はテーブルごとに 1 つでも行ごとに 1 つでも構いません。すべてのテスト用ダンプは MariaDB 10.11、11.4、11.8 で作成し、ソースとセル単位で比較しています。

UUID、INET6、JSON、VECTOR の列は保持されますか?

MySQL 5.7 と 8.0 にはこれらの型がないため、UUID は char(36)、INET4 と INET6 は varchar、JSON は json、VECTOR は浮動小数点数の json 配列になります。

AUTO_INCREMENT の値とシーケンスは保持されますか?

AUTO_INCREMENT はそのままで、ダンプの時点の値から続きます。MySQL にはシーケンスがないため、シーケンスとそこから値を取るデフォルトはレポートに記載されます。

ストアドプロシージャとトリガーはどうなりますか?

変換はせず、レポートに名前で一覧します。作り直す前に、それぞれを MySQL で確認できます。

スクリプトはどの MySQL バージョンで読み込めますか?

MySQL 5.7 以降です。すべてのテスト用ダンプを 5.7 と 9 で読み込み、問題があれば最初のエラーで止まります。