Einen MariaDB-Dump auf ein älteres oder neueres MariaDB bringen
Zieh einen Dump aus mariadb-dump, mysqldump, phpMyAdmin oder Adminer als .sql oder .sql.gz hierher und lade ein Skript herunter, das auf MariaDB ab 10.11 lädt. UUID, INET4, INET6, JSON und Sequenzen bleiben, wie sie sind, VECTOR wird für Versionen vor 11.7 ein JSON-Array seiner Zahlen, und jede Änderung steht im Bericht.
18 Zeilen konvertiert, keine Korrekturen, keine abgelehnt
Tabellen in shop_2024_mariadb.sqlMariaDB-11.8.9-MariaDB-ubu2404-Dump · erstellt mit mariadb-dump · utf8mb4
customers8 Zeilen
8 Spalten 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 Zeilen
12 Spalten 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;
Korrekturen
Nichts musste korrigiert werden.
Deine Datei wird auf diesem Computer umgewandelt und nie hochgeladen.
Weitere Beispiele:
Was sich zwischen Datei und Skript ändert
Jede Zeile ist eine Regel, die der Konverter anwendet, mit der Berichtszeile, die er schreibt, wenn die Regel etwas an deinen Daten ändert.
utf8mb4_0900_* and utf8mb4_uca1400_* collations
utf8mb4_unicode_520_ci für utf8mb4_0900_* (utf8mb4_bin für binäre)
MariaDB kennt die neueren Kollationen nicht, der Fehler, an dem die meisten MySQL-8-Dumps anderswo scheitern. unicode_520 folgt denselben Unicode-Regeln am genauesten.
Berichtszeile: collation_replaced
zero, partial or impossible dates (0000-00-00, 2024-02-30)
beibehalten
Das Skript lädt mit ALLOW_INVALID_DATES und ohne NO_ZERO_DATE, daher behält MariaDB dieselben Werte wie die Quelle.
TIME
TIME, einschließlich Dauern
Derselbe Typ mit demselben Bereich.
TINYINT(1), BOOL
TINYINT(1)
Derselbe Typ mit denselben Werten.
UNSIGNED and ZEROFILL
beibehalten
Dieselben Typen.
ENUM and SET, the '' error value included
beibehalten
Dieselben Typen; das Skript lädt ohne Strict Mode, daher lädt der Fehlerwert unverändert.
JSON
JSON (LONGTEXT, von MariaDB geprüft)
MariaDB liest denselben JSON-Text.
NUL bytes in text
beibehalten
Der Wert wird mit demselben Escape kopiert, das die Quelle nutzte.
AUTO_INCREMENT
AUTO_INCREMENT mit dem Zähler der Tabelle
Der Zähler macht dort weiter, wo die Quelle aufgehört hat, einschließlich der Gruppenzähler von MyISAM.
MyISAM AUTO_INCREMENT on the second column of a key, in a table that isn't MyISAM in the dump
ein Index auf der Spalte und ein Zähler für die Tabelle
InnoDB zählt eine Spalte nur, wenn sie einen Index anführt, und einmal für die ganze Tabelle.
Berichtszeile: myisam_group_autoincrement
ON UPDATE CURRENT_TIMESTAMP
beibehalten
Dieselbe Klausel, mit den Sekundenbruchteilen der Spalte.
generated columns
VIRTUAL oder STORED wie in der Quelle
Dieselbe Formel, Term für Term übersetzt.
generated columns with functions IntoSQL doesn't read
eine normale Spalte
Eine Formel, die IntoSQL nicht lesen kann, hinterlässt eine normale Spalte und eine Zeile im Bericht.
Berichtszeile: generated_not_translated
INVISIBLE columns
INVISIBLE-Spalten
MySQL hat unsichtbare Spalten ab 8.0.23, MariaDB ab 10.3.
CHECK constraints
beibehalten
Dieselben CHECK-Bedingungen, Term für Term übersetzt.
CHECK constraints with functions IntoSQL doesn't read
nicht angelegt
Eine CHECK-Bedingung, die IntoSQL nicht lesen kann, wird weggelassen und gemeldet.
Berichtszeile: check_skipped
CHECK ... NOT ENFORCED
nicht angelegt
MySQL 5.7 und MariaDB können eine CHECK-Bedingung nicht behalten, ohne sie anzuwenden, und die Zeilen können sie verletzen.
Berichtszeile: check_not_enforced
expression defaults, and defaults on TEXT, BLOB, JSON and GEOMETRY
beibehalten
MySQL nimmt sie ab 8.0.13 an; das Skript lädt auf 5.7, daher werden sie weggelassen und gemeldet. MariaDB nimmt sie an.
Berichtszeile: default_not_translated
functional indexes, KEY ((expr))
nicht angelegt
MySQL indiziert Ausdrücke ab 8.0.13 und MariaDB gar nicht; eine generierte Spalte mit Index leistet dasselbe.
Berichtszeile: index_skipped
keys and indexes on a prefix, c(20)
beibehalten
Derselbe Index.
FULLTEXT indexes
beibehalten
Derselbe Index; MATCH ... AGAINST funktioniert wie zuvor.
SPATIAL indexes
beibehalten
Derselbe Index.
foreign keys
beibehalten, geladen mit FOREIGN_KEY_CHECKS=0
Dieselben Schlüssel; die Zeilen laden wie aus dem Quell-Dump.
GEOMETRY, POINT, POLYGON...
beibehalten, mit der SRID jedes Werts
Die eigenen Geometrie-Bytes des Servers werden kopiert, einschließlich SRID.
INET4, INET6, UUID (MariaDB)
beibehalten
MySQL hat solche Typen nicht; der Text, den MariaDB für sie schreibt, bleibt erhalten.
BINARY, VARBINARY, BLOB
beibehalten
Bytes bleiben Bytes.
PARTITION BY
eine Tabelle
Die Zeilen bleiben dieselben; partitioniere die Tabelle neu, wenn nötig.
Berichtszeile: partitions_dropped
WITH SYSTEM VERSIONING (MariaDB)
WITH SYSTEM VERSIONING, ausgehend von den aktuellen Zeilen
Ein Dump enthält nur die aktuellen Zeilen; MySQL hat keine Systemversionierung.
Aria, ColumnStore, CONNECT, Spider, RocksDB (MariaDB)
beibehalten
MySQL hat keine dieser Engines. Jede andere Engine bleibt erhalten.
CREATE SEQUENCE (MariaDB)
CREATE SEQUENCE mit ihrem nächsten Wert
MySQL hat keine Sequenzen.
views, triggers, procedures, functions and events
im Bericht aufgeführt
Sie werden aufgeführt, damit du sie neu anlegst; ihr Code nennt oft seinen Definer und Serverfunktionen.
Berichtszeile: not_converted_objects
NOT NULL columns with values that become NULL
NOT NULL entfernt
Eine Spalte, deren Werte NULL werden mussten, kann NOT NULL nicht behalten, sonst würde das Laden abbrechen.
Berichtszeile: not_null_relaxed
text that isn't valid in its character set
die fehlerhaften Bytes als Ersatzzeichen
Das Skript ist UTF-8; Bytes, die es nicht sind, würden das Laden abbrechen.
Berichtszeile: invalid_utf8_replaced
text decoded twice (ñ)
unverändert kopiert
Der Dump enthält genau diese Zeichen, daher werden sie kopiert; der Bericht weist auf sie hin.
Berichtszeile: mojibake_suspected
dumps without CREATE TABLE
Typen aus den Werten gelesen
Ein mit --no-create-info erstellter Dump enthält nur Zeilen, daher kommen die Typen aus den Werten.
Berichtszeile: no_schema
geometries in a dump without CREATE TABLE
GEOMETRY
Das Geometrieformat von MySQL wird an den Werten erkannt.
SET NAMES utf8 from utf8mb4 tables
konvertiert, mit einer Warnung
mysqldump aus MySQL 5.x schreibt standardmäßig 3-Byte-utf8 und ersetzt jedes Emoji durch ein Fragezeichen, bevor ein Konverter die Datei sieht.
Berichtszeile: dump_lost_four_byte_chars
dumps without SET NAMES whose text isn't UTF-8
als Latin-1 (Windows-1252) gelesen
latin1 in MySQL ist Windows-1252, die übliche Kodierung solcher Dumps.
Berichtszeile: charset_guessed
sjis, cp932, gbk, big5 dumps
als UTF-8 gelesen, mit einer Warnung
Diese Kodierungen werden noch nicht dekodiert.
Berichtszeile: unsupported_charset
UNHEX('..'), CONVERT(b'..', UNSIGNED), CONVERT(".." USING x), ST_GeomFromText('..') in rows
ausgewertet
Manche Dump-Werkzeuge schreiben Werte als solche Aufrufe; sie werden als die Werte gelesen, die sie ergeben.
other expressions in rows
NULL
Ein Konverter, der keine Datenbank ausführt, kann sie nicht auswerten.
Berichtszeile: expression_value
DEFAULT in VALUES
der Standardwert der Spalte
Ein literaler Standardwert wird in die Zeile kopiert.
Berichtszeile: default_keyword_filled
DEFAULT in VALUES without a literal default
NULL
Es gibt keinen Wert zum Kopieren.
Berichtszeile: default_keyword_null
REPLACE and INSERT IGNORE
normale Zeilen
Ein Dump hat eine Zeile pro Schlüssel, daher sind die Zeilen dieselben.
Berichtszeile: replace_as_insert
types IntoSQL doesn't know
LONGBLOB
Ein Blob nimmt die Bytes jedes Werts auf; ändere den Typ nach dem Laden.
Berichtszeile: unknown_type
values that don't fit their column
NULL
Ein beschädigter oder von Hand geschriebener Dump kann Werte enthalten, die seine Spalte nicht aufnehmen kann; sie werden NULL, damit der Rest lädt.
Berichtszeile: invalid_value_null
unreadable geometries
NULL
Bytes, die keine Geometrie sind, lassen sich nicht als solche speichern.
Berichtszeile: bad_geometry
TIMESTAMP
beibehalten, geladen in der Zeitzone, die der Dump angibt
Das Skript setzt dieselbe Zeitzone wie der Dump, daher bleibt jeder Zeitpunkt derselbe.
VECTOR(n) (MariaDB 11.7+)
json mit den Gleitkommazahlen als Array
Das Skript lädt auf MariaDB 10.11 und neuer, die keinen vector-Typ haben; ein JSON-Array behält jede Gleitkommazahl, und VEC_FromText liest es zurück.
Berichtszeile: type_replaced
| In der Datei | Im Skript | Berichtszeile |
|---|---|---|
| utf8mb4_0900_* and utf8mb4_uca1400_* collations | utf8mb4_unicode_520_ci für utf8mb4_0900_* (utf8mb4_bin für binäre)MariaDB kennt die neueren Kollationen nicht, der Fehler, an dem die meisten MySQL-8-Dumps anderswo scheitern. unicode_520 folgt denselben Unicode-Regeln am genauesten. | collation_replaced |
| zero, partial or impossible dates (0000-00-00, 2024-02-30) | beibehaltenDas Skript lädt mit ALLOW_INVALID_DATES und ohne NO_ZERO_DATE, daher behält MariaDB dieselben Werte wie die Quelle. | |
| TIME | TIME, einschließlich DauernDerselbe Typ mit demselben Bereich. | |
| TINYINT(1), BOOL | TINYINT(1)Derselbe Typ mit denselben Werten. | |
| UNSIGNED and ZEROFILL | beibehaltenDieselben Typen. | |
| ENUM and SET, the '' error value included | beibehaltenDieselben Typen; das Skript lädt ohne Strict Mode, daher lädt der Fehlerwert unverändert. | |
| JSON | JSON (LONGTEXT, von MariaDB geprüft)MariaDB liest denselben JSON-Text. | |
| NUL bytes in text | beibehaltenDer Wert wird mit demselben Escape kopiert, das die Quelle nutzte. | |
| AUTO_INCREMENT | AUTO_INCREMENT mit dem Zähler der TabelleDer Zähler macht dort weiter, wo die Quelle aufgehört hat, einschließlich der Gruppenzähler von MyISAM. | |
| MyISAM AUTO_INCREMENT on the second column of a key, in a table that isn't MyISAM in the dump | ein Index auf der Spalte und ein Zähler für die TabelleInnoDB zählt eine Spalte nur, wenn sie einen Index anführt, und einmal für die ganze Tabelle. | myisam_group_autoincrement |
| ON UPDATE CURRENT_TIMESTAMP | beibehaltenDieselbe Klausel, mit den Sekundenbruchteilen der Spalte. | |
| generated columns | VIRTUAL oder STORED wie in der QuelleDieselbe Formel, Term für Term übersetzt. | |
| generated columns with functions IntoSQL doesn't read | eine normale SpalteEine Formel, die IntoSQL nicht lesen kann, hinterlässt eine normale Spalte und eine Zeile im Bericht. | generated_not_translated |
| INVISIBLE columns | INVISIBLE-SpaltenMySQL hat unsichtbare Spalten ab 8.0.23, MariaDB ab 10.3. | |
| CHECK constraints | beibehaltenDieselben CHECK-Bedingungen, Term für Term übersetzt. | |
| CHECK constraints with functions IntoSQL doesn't read | nicht angelegtEine CHECK-Bedingung, die IntoSQL nicht lesen kann, wird weggelassen und gemeldet. | check_skipped |
| CHECK ... NOT ENFORCED | nicht angelegtMySQL 5.7 und MariaDB können eine CHECK-Bedingung nicht behalten, ohne sie anzuwenden, und die Zeilen können sie verletzen. | check_not_enforced |
| expression defaults, and defaults on TEXT, BLOB, JSON and GEOMETRY | beibehaltenMySQL nimmt sie ab 8.0.13 an; das Skript lädt auf 5.7, daher werden sie weggelassen und gemeldet. MariaDB nimmt sie an. | default_not_translated |
| functional indexes, KEY ((expr)) | nicht angelegtMySQL indiziert Ausdrücke ab 8.0.13 und MariaDB gar nicht; eine generierte Spalte mit Index leistet dasselbe. | index_skipped |
| keys and indexes on a prefix, c(20) | beibehaltenDerselbe Index. | |
| FULLTEXT indexes | beibehaltenDerselbe Index; MATCH ... AGAINST funktioniert wie zuvor. | |
| SPATIAL indexes | beibehaltenDerselbe Index. | |
| foreign keys | beibehalten, geladen mit FOREIGN_KEY_CHECKS=0Dieselben Schlüssel; die Zeilen laden wie aus dem Quell-Dump. | |
| GEOMETRY, POINT, POLYGON... | beibehalten, mit der SRID jedes WertsDie eigenen Geometrie-Bytes des Servers werden kopiert, einschließlich SRID. | |
| INET4, INET6, UUID (MariaDB) | beibehaltenMySQL hat solche Typen nicht; der Text, den MariaDB für sie schreibt, bleibt erhalten. | |
| BINARY, VARBINARY, BLOB | beibehaltenBytes bleiben Bytes. | |
| PARTITION BY | eine TabelleDie Zeilen bleiben dieselben; partitioniere die Tabelle neu, wenn nötig. | partitions_dropped |
| WITH SYSTEM VERSIONING (MariaDB) | WITH SYSTEM VERSIONING, ausgehend von den aktuellen ZeilenEin Dump enthält nur die aktuellen Zeilen; MySQL hat keine Systemversionierung. | |
| Aria, ColumnStore, CONNECT, Spider, RocksDB (MariaDB) | beibehaltenMySQL hat keine dieser Engines. Jede andere Engine bleibt erhalten. | |
| CREATE SEQUENCE (MariaDB) | CREATE SEQUENCE mit ihrem nächsten WertMySQL hat keine Sequenzen. | |
| views, triggers, procedures, functions and events | im Bericht aufgeführtSie werden aufgeführt, damit du sie neu anlegst; ihr Code nennt oft seinen Definer und Serverfunktionen. | not_converted_objects |
| NOT NULL columns with values that become NULL | NOT NULL entferntEine Spalte, deren Werte NULL werden mussten, kann NOT NULL nicht behalten, sonst würde das Laden abbrechen. | not_null_relaxed |
| text that isn't valid in its character set | die fehlerhaften Bytes als ErsatzzeichenDas Skript ist UTF-8; Bytes, die es nicht sind, würden das Laden abbrechen. | invalid_utf8_replaced |
| text decoded twice (ñ) | unverändert kopiertDer Dump enthält genau diese Zeichen, daher werden sie kopiert; der Bericht weist auf sie hin. | mojibake_suspected |
| dumps without CREATE TABLE | Typen aus den Werten gelesenEin mit --no-create-info erstellter Dump enthält nur Zeilen, daher kommen die Typen aus den Werten. | no_schema |
| geometries in a dump without CREATE TABLE | GEOMETRYDas Geometrieformat von MySQL wird an den Werten erkannt. | |
| SET NAMES utf8 from utf8mb4 tables | konvertiert, mit einer Warnungmysqldump aus MySQL 5.x schreibt standardmäßig 3-Byte-utf8 und ersetzt jedes Emoji durch ein Fragezeichen, bevor ein Konverter die Datei sieht. | dump_lost_four_byte_chars |
| dumps without SET NAMES whose text isn't UTF-8 | als Latin-1 (Windows-1252) gelesenlatin1 in MySQL ist Windows-1252, die übliche Kodierung solcher Dumps. | charset_guessed |
| sjis, cp932, gbk, big5 dumps | als UTF-8 gelesen, mit einer WarnungDiese Kodierungen werden noch nicht dekodiert. | unsupported_charset |
| UNHEX('..'), CONVERT(b'..', UNSIGNED), CONVERT(".." USING x), ST_GeomFromText('..') in rows | ausgewertetManche Dump-Werkzeuge schreiben Werte als solche Aufrufe; sie werden als die Werte gelesen, die sie ergeben. | |
| other expressions in rows | NULLEin Konverter, der keine Datenbank ausführt, kann sie nicht auswerten. | expression_value |
| DEFAULT in VALUES | der Standardwert der SpalteEin literaler Standardwert wird in die Zeile kopiert. | default_keyword_filled |
| DEFAULT in VALUES without a literal default | NULLEs gibt keinen Wert zum Kopieren. | default_keyword_null |
| REPLACE and INSERT IGNORE | normale ZeilenEin Dump hat eine Zeile pro Schlüssel, daher sind die Zeilen dieselben. | replace_as_insert |
| types IntoSQL doesn't know | LONGBLOBEin Blob nimmt die Bytes jedes Werts auf; ändere den Typ nach dem Laden. | unknown_type |
| values that don't fit their column | NULLEin beschädigter oder von Hand geschriebener Dump kann Werte enthalten, die seine Spalte nicht aufnehmen kann; sie werden NULL, damit der Rest lädt. | invalid_value_null |
| unreadable geometries | NULLBytes, die keine Geometrie sind, lassen sich nicht als solche speichern. | bad_geometry |
| TIMESTAMP | beibehalten, geladen in der Zeitzone, die der Dump angibtDas Skript setzt dieselbe Zeitzone wie der Dump, daher bleibt jeder Zeitpunkt derselbe. | |
| VECTOR(n) (MariaDB 11.7+) | json mit den Gleitkommazahlen als ArrayDas Skript lädt auf MariaDB 10.11 und neuer, die keinen vector-Typ haben; ein JSON-Array behält jede Gleitkommazahl, und VEC_FromText liest es zurück. | type_replaced |
Das Skript in MariaDB laden
Das Skript legt die Tabellen an, kopiert die Zeilen und fügt dann Schlüssel, Indizes und Fremdschlüssel hinzu, so lädt es schnell und hält beim ersten Fehler an.
mariadb --default-character-set=utf8mb4 mydb < mariadb.mariadb.sqlFremdschlüssel werden so angelegt, wie der Dump sie deklariert, mit FOREIGN_KEY_CHECKS=0, während die Zeilen laden, wie bei mysqldump.
Führe bei einem großen Dump den Client auf dem Rechner des Servers aus und erhöhe max_allowed_packet, wenn eine einzelne Zeile sehr groß ist.
IntoSQL Pro lädt die Datei aus der Desktop-App oder der Kommandozeile direkt in MariaDB, ohne ein Skript zu schreiben.
Den MariaDB-Dump für das beste Ergebnis erstellen
Der Konverter liest, was der Dump enthält. Mit diesen Optionen bleibt mehr von deinen Daten darin:
- --default-character-set=utf8mb4 bewahrt Emoji und andere 4-Byte-Zeichen, die ein utf8mb3-Dump verliert, bevor der Konverter ihn sieht.
- --hex-blob schreibt Binärspalten und VECTOR-Werte hexadezimal, was das Kopieren zwischen Systemen übersteht.
- --routines --triggers --events fügen diese Objekte dem Dump hinzu, damit der Bericht sie auflisten kann.
Was nicht konvertiert wird
Views, Trigger, Prozeduren, Funktionen und andere Objekte in der eigenen Sprache von MariaDB stehen mit Namen im Bericht und werden nie stillschweigend entfernt, damit du jedes vor dem Neuanlegen mit der MariaDB-Version abgleichen kannst, in die du lädst.
Fragen zum Wechsel von MariaDB zwischen Versionen
Keine Antwort gefunden? Schreib uns über die Kontaktseite, und ein Mensch antwortet. Kontaktseite
Wird mein Dump hochgeladen?
Nein. Der Konverter läuft in deinem Browser und liest den Dump stückweise von deiner Festplatte, daher verlässt er nie deinen Computer. Die Desktop-App und die Kommandozeile konvertieren ebenfalls auf deinem Computer.
Wie groß darf der Dump sein?
Der Konverter hält nie den ganzen Dump im Speicher: Er liest die Datei zweimal, in Abschnitten, und schreibt das Skript fortlaufend. Dumps von mehreren Gigabyte werden im Browser, in der Desktop-App und mit der Kommandozeile konvertiert.
Aus welchen MariaDB-Versionen kann der Dump stammen?
Dumps aus mariadb-dump und mysqldump auf MariaDB 10.3 bis 12, mit einem INSERT pro Tabelle oder einem pro Zeile. Jeder Test-Dump stammt aus MariaDB 10.11, 11.4 und 11.8 und wird Zelle für Zelle mit seiner Quelle verglichen.
Bleiben UUID-, INET6-, JSON- und VECTOR-Spalten erhalten?
UUID, INET4, INET6 und JSON bleiben unverändert. VECTOR wird ein JSON-Array seiner Gleitkommazahlen, weil MariaDB vor 11.7 keinen vector-Typ hat; VEC_FromText liest es zurück.
Bleiben AUTO_INCREMENT-Werte und Sequenzen erhalten?
Ja. AUTO_INCREMENT und Sequenzen bleiben unverändert, und Standardwerte, die aus einer Sequenz ziehen, ziehen weiter aus ihr.
Was ist mit gespeicherten Prozeduren und Triggern?
Sie stehen mit Namen im Bericht und werden nicht konvertiert, damit du jedes Objekt vor dem Neuanlegen mit dem MariaDB abgleichen kannst, in das du lädst.
Auf welchen MariaDB-Versionen lädt das Skript?
MariaDB 10.11 und neuer, egal welche Version den Dump geschrieben hat. Jeder Test-Dump lädt auf 10.11 und 11.4.