Перейти к содержимому
Главная страница IntoSQL

Перенесите дамп MariaDB на более старую или новую версию MariaDB

Перетащите дамп из mariadb-dump, mysqldump, phpMyAdmin или Adminer в формате .sql или .sql.gz и скачайте скрипт, который загружается на MariaDB 10.11 и новее. UUID, INET4, INET6, JSON и последовательности остаются как есть, VECTOR становится массивом JSON из его чисел с плавающей точкой для версий до 11.7, и каждое изменение указано в отчете.

Ваш файл
sqlshop_2024_mariadb.sqlПример файла, 6,6 кБ
Ваша база данных

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_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_* collationsutf8mb4_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 сохраняет те же значения, что были в источнике.
TIMETIME, включая длительностиТот же тип с тем же диапазоном.
TINYINT(1), BOOLTINYINT(1)Тот же тип с теми же значениями.
UNSIGNED and ZEROFILLсохраняетсяТе же типы.
ENUM and SET, the '' error value includedсохраняетсяТе же типы; скрипт загружается без строгого режима, поэтому значение ошибки загружается как есть.
JSONJSON (LONGTEXT с проверкой MariaDB)MariaDB читает тот же текст JSON.
NUL bytes in textсохраняетсяЗначение копируется с тем же экранированием, что и в источнике.
AUTO_INCREMENTAUTO_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 columnsVIRTUAL или 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 NULLNOT 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 TABLEGEOMETRYФормат геометрии 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 rowsNULLКонвертер, который не запускает базу данных, не может их вычислить.expression_value
DEFAULT in VALUESзначение столбца по умолчаниюЛитеральное значение по умолчанию копируется в строку.default_keyword_filled
DEFAULT in VALUES without a literal defaultNULLКопировать нечего.default_keyword_null
REPLACE and INSERT IGNOREобычные строкиВ дампе одна строка на ключ, поэтому строки те же.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 с числами 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.