Перенесите дамп MariaDB на более старую или новую версию MariaDB
Перетащите дамп из mariadb-dump, mysqldump, phpMyAdmin или Adminer в формате .sql или .sql.gz и скачайте скрипт, который загружается на MariaDB 10.11 и новее. UUID, INET4, INET6, JSON и последовательности остаются как есть, VECTOR становится массивом JSON из его чисел с плавающей точкой для версий до 11.7, и каждое изменение указано в отчете.
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_unicode_520_ci для utf8mb4_0900_* (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
сохраняется
Те же типы; скрипт загружается без строгого режима, поэтому значение ошибки загружается как есть.
JSON
JSON (LONGTEXT с проверкой MariaDB)
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
индекс по столбцу и один счетчик на таблицу
InnoDB считает столбец, только если он стоит первым в индексе, и один раз на всю таблицу.
Строка отчета: myisam_group_autoincrement
ON UPDATE CURRENT_TIMESTAMP
сохраняется
То же предложение, с долями секунды столбца.
generated columns
VIRTUAL или STORED, как в источнике
Та же формула, переведенная по частям.
generated columns with functions IntoSQL doesn't read
обычный столбец
Формула, которую IntoSQL не может прочитать, оставляет обычный столбец и строку в отчете.
Строка отчета: 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
одна таблица
Строки те же; при необходимости секционируйте таблицу заново.
Строка отчета: 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
перечисляются в отчете
Они перечислены, чтобы вы создали их заново; их код часто указывает definer и возможности сервера.
Строка отчета: 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; байты, которые им не являются, остановили бы загрузку.
Строка отчета: 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
конвертируется с предупреждением
mysqldump из MySQL 5.x по умолчанию пишет 3-байтовую utf8 и заменяет каждый эмодзи вопросительным знаком еще до того, как файл увидит какой-либо конвертер.
Строка отчета: dump_lost_four_byte_chars
dumps without SET NAMES whose text isn't UTF-8
читается как Latin-1 (Windows-1252)
latin1 в MySQL - это 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
обычные строки
В дампе одна строка на ключ, поэтому строки те же.
Строка отчета: 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 с числами float в виде массива
Скрипт загружается на MariaDB 10.11 и новее, где нет векторного типа; массив JSON сохраняет каждое число float, а VEC_FromText читает его обратно.
Строка отчета: type_replaced
| В файле | В скрипте | Строка отчета |
|---|---|---|
| utf8mb4_0900_* and utf8mb4_uca1400_* collations | utf8mb4_unicode_520_ci для utf8mb4_0900_* (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 | сохраняетсяТе же типы; скрипт загружается без строгого режима, поэтому значение ошибки загружается как есть. | |
| JSON | JSON (LONGTEXT с проверкой MariaDB)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 | индекс по столбцу и один счетчик на таблицуInnoDB считает столбец, только если он стоит первым в индексе, и один раз на всю таблицу. | myisam_group_autoincrement |
| ON UPDATE CURRENT_TIMESTAMP | сохраняетсяТо же предложение, с долями секунды столбца. | |
| generated columns | VIRTUAL или STORED, как в источникеТа же формула, переведенная по частям. | |
| generated columns with functions IntoSQL doesn't read | обычный столбецФормула, которую IntoSQL не может прочитать, оставляет обычный столбец и строку в отчете. | 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 | одна таблицаСтроки те же; при необходимости секционируйте таблицу заново. | 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 | перечисляются в отчетеОни перечислены, чтобы вы создали их заново; их код часто указывает definer и возможности сервера. | 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; байты, которые им не являются, остановили бы загрузку. | 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 | конвертируется с предупреждениемmysqldump из MySQL 5.x по умолчанию пишет 3-байтовую utf8 и заменяет каждый эмодзи вопросительным знаком еще до того, как файл увидит какой-либо конвертер. | dump_lost_four_byte_chars |
| dumps without SET NAMES whose text isn't UTF-8 | читается как Latin-1 (Windows-1252)latin1 в MySQL - это 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 | обычные строкиВ дампе одна строка на ключ, поэтому строки те же. | 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 с числами float в виде массиваСкрипт загружается на MariaDB 10.11 и новее, где нет векторного типа; массив JSON сохраняет каждое число float, а VEC_FromText читает его обратно. | type_replaced |
Загрузите скрипт в MariaDB
Скрипт создает таблицы, копирует строки, затем добавляет ключи, индексы и внешние ключи, поэтому загрузка идет быстро и останавливается на первой ошибке.
mariadb --default-character-set=utf8mb4 mydb < mariadb.mariadb.sqlВнешние ключи создаются так, как их объявляет дамп, с FOREIGN_KEY_CHECKS=0 на время загрузки строк, как это делает mysqldump.
Для большого дампа запускайте клиент на той же машине, где работает сервер, и увеличьте max_allowed_packet, если отдельная строка очень большая.
IntoSQL Pro загружает файл прямо в MariaDB из приложения для компьютера или командной строки, без написания скрипта.
Как создать дамп MariaDB для лучшего результата
Конвертер читает то, что есть в дампе. Эти параметры сохраняют в нем больше ваших данных:
- --default-character-set=utf8mb4 сохраняет эмодзи и другие 4-байтовые символы, которые дамп в utf8mb3 теряет еще до конвертера.
- --hex-blob записывает двоичные столбцы и значения VECTOR в шестнадцатеричном виде, который не портится при копировании между системами.
- --routines --triggers --events добавляют эти объекты в дамп, чтобы отчет мог их перечислить.
Что не конвертируется
Представления, триггеры, процедуры, функции и другие объекты, написанные на собственном языке MariaDB, перечислены в отчете по имени и никогда не удаляются молча, чтобы вы могли проверить каждый на той версии MariaDB, в которую загружаете, прежде чем создать его заново.
Вопросы о переносе MariaDB между версиями
Нет ответа на ваш вопрос? Напишите нам через страницу контактов, и вам ответит человек. Страница контактов
Мой дамп загружается на сервер?
Нет. Конвертер работает в вашем браузере и читает дамп с диска по частям, поэтому он никогда не покидает ваш компьютер. Приложение для компьютера и командная строка тоже конвертируют на вашем компьютере.
Насколько большим может быть дамп?
Конвертер никогда не держит весь дамп в памяти: он читает файл дважды, по диапазонам, и пишет скрипт по ходу чтения. Дампы в несколько гигабайт конвертируются в браузере, в приложении для компьютера и в командной строке.
Из каких версий MariaDB может быть дамп?
Дампы из mariadb-dump и mysqldump на MariaDB с 10.3 по 12, с одним INSERT на таблицу или одним на строку. Каждый тестовый дамп создан в MariaDB 10.11, 11.4 и 11.8 и сверен с источником ячейка за ячейкой.
Сохраняются ли столбцы UUID, INET6, JSON и VECTOR?
UUID, INET4, INET6 и JSON остаются как есть. VECTOR становится массивом JSON из его чисел float, потому что в MariaDB до 11.7 нет векторного типа; VEC_FromText читает его обратно.
Сохраняются ли значения AUTO_INCREMENT и последовательности?
Да. AUTO_INCREMENT и последовательности остаются как есть, а значения по умолчанию, которые берутся из последовательности, продолжают из нее браться.
А хранимые процедуры и триггеры?
Они перечислены в отчете по имени и не конвертируются, чтобы вы могли проверить каждый в той MariaDB, в которую загружаете, прежде чем создать его заново.
На каких версиях MariaDB загружается скрипт?
MariaDB 10.11 и новее, какой бы версией ни был записан дамп. Каждый тестовый дамп загружается на 10.11 и 11.4.