Naar de inhoud
IntoSQL-startpagina

MariaDB omzetten naar MySQL

Zet een dump van mariadb-dump, mysqldump, phpMyAdmin of Adminer neer, als .sql of .sql.gz, en download een MySQL-script met dezelfde tabellen, sleutels, indexen en data. Elke waarde die MySQL niet ongewijzigd kan bevatten, en elk object dat het niet overneemt, staat in het rapport.

Je bestand
sqlshop_2024_mariadb.sqlVoorbeeldbestand, 6,6 kB
Je database

18 rijen geconverteerd, 4 correcties, geen afgewezen

Tonen

Tabellen in shop_2024_mariadb.sqlMariaDB 11.8.9-MariaDB-ubu2404-dump · geschreven door mariadb-dump · utf8mb4

  • customers8 rijen2
    8 kolommen
    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 rijen2
    12 kolommen
    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;

Correcties

  1. customers gebruikt de collatie utf8mb4_uca1400_ai_ci, die MySQL niet heeft, dus het gebruikt utf8mb4_unicode_520_ci; tekst kan iets anders sorteren en vergelijken.
  2. "last_ip" van customers is inet6, wat MySQL niet heeft, dus het is varchar(39) met dezelfde waarden.
  3. orders gebruikt de collatie utf8mb4_uca1400_ai_ci, die MySQL niet heeft, dus het gebruikt utf8mb4_unicode_520_ci; tekst kan iets anders sorteren en vergelijken.
  4. "order_ref" van orders is uuid, wat MySQL niet heeft, dus het is char(36) met dezelfde waarden.

Na te kijken

  • 1 sequence wordt niet aangemaakt; MySQL heeft geen sequences. Houd de volgende waarde bij in een tabel als je applicatie die nodig heeft.
  • De standaardwaarde van "invoice" in orders kan niet voor MySQL worden geschreven (a sequence), dus de kolom heeft geen standaardwaarde. Voeg de standaardwaarde met de hand toe als nieuwe rijen die nodig hebben.

Je bestand wordt op deze computer omgezet en nooit geüpload.

Andere voorbeelden:

Wat er verandert van MariaDB naar MySQL

Elke rij is een regel die de converter toepast, met de rapportregel die hij schrijft als de regel iets in je data verandert.

  • utf8mb4_0900_* and utf8mb4_uca1400_* collations

    utf8mb4_unicode_520_ci (utf8mb4_bin voor binaire)

    MySQL kent de nieuwere collaties niet, de fout waardoor de meeste MySQL 8-dumps elders niet laden. unicode_520 volgt dezelfde Unicode-regels het nauwst.

    Rapportregel: collation_replaced

  • zero, partial or impossible dates (0000-00-00, 2024-02-30)

    behouden

    Het script laadt met ALLOW_INVALID_DATES en zonder NO_ZERO_DATE, dus MySQL behoudt dezelfde waarden als de bron.

  • TIME

    TIME, inclusief duren

    Hetzelfde type, met hetzelfde bereik.

  • TINYINT(1), BOOL

    TINYINT(1)

    Hetzelfde type met dezelfde waarden.

  • UNSIGNED and ZEROFILL

    behouden

    Dezelfde typen.

  • ENUM and SET, the '' error value included

    behouden

    Dezelfde typen; het script laadt zonder strict mode, dus de foutwaarde laadt ongewijzigd.

  • JSON

    JSON

    MySQL leest dezelfde JSON-tekst.

  • NUL bytes in text

    behouden

    De waarde wordt gekopieerd met dezelfde escape die de bron gebruikte.

  • AUTO_INCREMENT

    AUTO_INCREMENT met de teller van de tabel

    De teller gaat verder waar de bron hem achterliet, de tellers per groep van MyISAM inbegrepen.

  • MyISAM AUTO_INCREMENT on the second column of a key, in a table that isn't MyISAM in the dump

    een index op de kolom en één teller voor de tabel

    InnoDB telt een kolom alleen als die vooraan in een index staat, en één keer voor de hele tabel.

    Rapportregel: myisam_group_autoincrement

  • ON UPDATE CURRENT_TIMESTAMP

    behouden

    Dezelfde clausule, met de fracties van een seconde van de kolom.

  • generated columns

    VIRTUAL of STORED zoals in de bron

    Dezelfde formule, term voor term vertaald.

  • generated columns with functions IntoSQL doesn't read

    een gewone kolom

    Een formule die IntoSQL niet kan lezen, levert een gewone kolom en een regel in het rapport op.

    Rapportregel: generated_not_translated

  • INVISIBLE columns

    gewone kolommen

    MySQL heeft onzichtbare kolommen vanaf 8.0.23, MariaDB vanaf 10.3.

    Rapportregel: invisible_column

  • CHECK constraints

    behouden (MySQL 5.7 leest ze en negeert ze)

    Dezelfde checks, term voor term vertaald.

  • CHECK constraints with functions IntoSQL doesn't read

    niet aangemaakt

    Een check die IntoSQL niet kan lezen, wordt weggelaten en gemeld.

    Rapportregel: check_skipped

  • CHECK ... NOT ENFORCED

    niet aangemaakt

    MySQL 5.7 en MariaDB kunnen een check niet bewaren zonder hem toe te passen, en de rijen kunnen hem schenden.

    Rapportregel: check_not_enforced

  • expression defaults, and defaults on TEXT, BLOB, JSON and GEOMETRY

    geen standaardwaarde

    MySQL accepteert ze vanaf 8.0.13; het script laadt op 5.7, dus ze worden weggelaten en gemeld. MariaDB accepteert ze.

    Rapportregel: default_not_translated

  • functional indexes, KEY ((expr))

    niet aangemaakt

    MySQL indexeert expressies vanaf 8.0.13 en MariaDB helemaal niet; een gegenereerde kolom met een index doet hetzelfde.

    Rapportregel: index_skipped

  • keys and indexes on a prefix, c(20)

    behouden

    Dezelfde index.

  • FULLTEXT indexes

    behouden

    Dezelfde index; MATCH ... AGAINST werkt zoals voorheen.

  • SPATIAL indexes

    behouden

    Dezelfde index.

  • foreign keys

    behouden, geladen met FOREIGN_KEY_CHECKS=0

    Dezelfde sleutels; rijen laden zoals ze uit de brondump laadden.

  • GEOMETRY, POINT, POLYGON...

    behouden, met de SRID van elke waarde

    De eigen geometriebytes van de server worden gekopieerd, inclusief SRID.

  • INET4, INET6, UUID (MariaDB)

    varchar(15), varchar(39), char(36)

    MySQL heeft zulke typen niet; de tekst die MariaDB ervoor schrijft, blijft behouden.

    Rapportregel: type_replaced

  • BINARY, VARBINARY, BLOB

    behouden

    Bytes blijven bytes.

  • PARTITION BY

    één tabel

    De rijen zijn dezelfde; partitioneer de tabel opnieuw als dat nodig is.

    Rapportregel: partitions_dropped

  • WITH SYSTEM VERSIONING (MariaDB)

    een tabel met de huidige rijen

    Een dump bevat alleen de huidige rijen; MySQL heeft geen systeemversiebeheer.

    Rapportregel: system_versioning_dropped

  • Aria, ColumnStore, CONNECT, Spider, RocksDB (MariaDB)

    InnoDB

    MySQL heeft geen van deze engines. Elke andere engine blijft behouden.

    Rapportregel: engine_dropped

  • CREATE SEQUENCE (MariaDB)

    niet aangemaakt

    MySQL heeft geen sequences.

    Rapportregel: sequence_not_converted

  • views, triggers, procedures, functions and events

    vermeld in het rapport

    Ze worden vermeld zodat je ze opnieuw kunt maken; hun code noemt vaak de definer en serverfuncties.

    Rapportregel: not_converted_objects

  • NOT NULL columns with values that become NULL

    NOT NULL weggelaten

    Een kolom waarvan waarden NULL moesten worden, kan NOT NULL niet houden, anders zou het laden stoppen.

    Rapportregel: not_null_relaxed

  • text that isn't valid in its character set

    de foute bytes als het vervangingsteken

    Het script is UTF-8; bytes die dat niet zijn, zouden het laden stoppen.

    Rapportregel: invalid_utf8_replaced

  • text decoded twice (ñ)

    ongewijzigd gekopieerd

    De dump bevat precies deze tekens, dus ze worden gekopieerd; het rapport wijst ze aan.

    Rapportregel: mojibake_suspected

  • dumps without CREATE TABLE

    typen afgeleid uit de waarden

    Een dump gemaakt met --no-create-info bevat alleen rijen, dus de typen komen uit de waarden.

    Rapportregel: no_schema

  • geometries in a dump without CREATE TABLE

    GEOMETRY

    Het geometrieformaat van MySQL wordt herkend aan de waarden.

  • SET NAMES utf8 from utf8mb4 tables

    geconverteerd, met een waarschuwing

    mysqldump van MySQL 5.x schrijft standaard 3-byte utf8 en vervangt elke emoji door een vraagteken voordat een converter het bestand ziet.

    Rapportregel: dump_lost_four_byte_chars

  • dumps without SET NAMES whose text isn't UTF-8

    gelezen als Latin-1 (Windows-1252)

    latin1 in MySQL is Windows-1252, de gebruikelijke codering van zulke dumps.

    Rapportregel: charset_guessed

  • sjis, cp932, gbk, big5 dumps

    gelezen als UTF-8, met een waarschuwing

    Deze coderingen worden nog niet gedecodeerd.

    Rapportregel: unsupported_charset

  • UNHEX('..'), CONVERT(b'..', UNSIGNED), CONVERT(".." USING x), ST_GeomFromText('..') in rows

    geëvalueerd

    Sommige dumptools schrijven waarden als deze aanroepen; ze worden gelezen als de waarden die ze opleveren.

  • other expressions in rows

    NULL

    Een converter die geen database draait, kan ze niet evalueren.

    Rapportregel: expression_value

  • DEFAULT in VALUES

    de standaardwaarde van de kolom

    Een letterlijke standaardwaarde wordt in de rij gekopieerd.

    Rapportregel: default_keyword_filled

  • DEFAULT in VALUES without a literal default

    NULL

    Er is geen waarde om te kopiëren.

    Rapportregel: default_keyword_null

  • REPLACE and INSERT IGNORE

    gewone rijen

    Een dump heeft één rij per sleutel, dus de rijen zijn dezelfde.

    Rapportregel: replace_as_insert

  • types IntoSQL doesn't know

    LONGBLOB

    Een blob bevat de bytes van elke waarde; wijzig het type na het laden.

    Rapportregel: unknown_type

  • values that don't fit their column

    NULL

    Een beschadigde of met de hand geschreven dump kan waarden bevatten die de kolom niet aankan; ze worden NULL zodat de rest laadt.

    Rapportregel: invalid_value_null

  • unreadable geometries

    NULL

    Bytes die geen geometrie zijn, kunnen niet als geometrie worden opgeslagen.

    Rapportregel: bad_geometry

  • TIMESTAMP

    behouden, geladen in de tijdzone die de dump vermeldt

    Het script stelt dezelfde tijdzone in als de dump, dus elk moment is hetzelfde.

  • VECTOR(n) (MariaDB 11.7+)

    json met de floats als array

    MySQL 5.7 en 8.0 hebben geen vectortype; een JSON-array behoudt elke float op elke versie.

    Rapportregel: type_replaced

In MariaDBIn MySQLRapportregel
utf8mb4_0900_* and utf8mb4_uca1400_* collationsutf8mb4_unicode_520_ci (utf8mb4_bin voor binaire)MySQL kent de nieuwere collaties niet, de fout waardoor de meeste MySQL 8-dumps elders niet laden. unicode_520 volgt dezelfde Unicode-regels het nauwst.collation_replaced
zero, partial or impossible dates (0000-00-00, 2024-02-30)behoudenHet script laadt met ALLOW_INVALID_DATES en zonder NO_ZERO_DATE, dus MySQL behoudt dezelfde waarden als de bron.
TIMETIME, inclusief durenHetzelfde type, met hetzelfde bereik.
TINYINT(1), BOOLTINYINT(1)Hetzelfde type met dezelfde waarden.
UNSIGNED and ZEROFILLbehoudenDezelfde typen.
ENUM and SET, the '' error value includedbehoudenDezelfde typen; het script laadt zonder strict mode, dus de foutwaarde laadt ongewijzigd.
JSONJSONMySQL leest dezelfde JSON-tekst.
NUL bytes in textbehoudenDe waarde wordt gekopieerd met dezelfde escape die de bron gebruikte.
AUTO_INCREMENTAUTO_INCREMENT met de teller van de tabelDe teller gaat verder waar de bron hem achterliet, de tellers per groep van MyISAM inbegrepen.
MyISAM AUTO_INCREMENT on the second column of a key, in a table that isn't MyISAM in the dumpeen index op de kolom en één teller voor de tabelInnoDB telt een kolom alleen als die vooraan in een index staat, en één keer voor de hele tabel.myisam_group_autoincrement
ON UPDATE CURRENT_TIMESTAMPbehoudenDezelfde clausule, met de fracties van een seconde van de kolom.
generated columnsVIRTUAL of STORED zoals in de bronDezelfde formule, term voor term vertaald.
generated columns with functions IntoSQL doesn't readeen gewone kolomEen formule die IntoSQL niet kan lezen, levert een gewone kolom en een regel in het rapport op.generated_not_translated
INVISIBLE columnsgewone kolommenMySQL heeft onzichtbare kolommen vanaf 8.0.23, MariaDB vanaf 10.3.invisible_column
CHECK constraintsbehouden (MySQL 5.7 leest ze en negeert ze)Dezelfde checks, term voor term vertaald.
CHECK constraints with functions IntoSQL doesn't readniet aangemaaktEen check die IntoSQL niet kan lezen, wordt weggelaten en gemeld.check_skipped
CHECK ... NOT ENFORCEDniet aangemaaktMySQL 5.7 en MariaDB kunnen een check niet bewaren zonder hem toe te passen, en de rijen kunnen hem schenden.check_not_enforced
expression defaults, and defaults on TEXT, BLOB, JSON and GEOMETRYgeen standaardwaardeMySQL accepteert ze vanaf 8.0.13; het script laadt op 5.7, dus ze worden weggelaten en gemeld. MariaDB accepteert ze.default_not_translated
functional indexes, KEY ((expr))niet aangemaaktMySQL indexeert expressies vanaf 8.0.13 en MariaDB helemaal niet; een gegenereerde kolom met een index doet hetzelfde.index_skipped
keys and indexes on a prefix, c(20)behoudenDezelfde index.
FULLTEXT indexesbehoudenDezelfde index; MATCH ... AGAINST werkt zoals voorheen.
SPATIAL indexesbehoudenDezelfde index.
foreign keysbehouden, geladen met FOREIGN_KEY_CHECKS=0Dezelfde sleutels; rijen laden zoals ze uit de brondump laadden.
GEOMETRY, POINT, POLYGON...behouden, met de SRID van elke waardeDe eigen geometriebytes van de server worden gekopieerd, inclusief SRID.
INET4, INET6, UUID (MariaDB)varchar(15), varchar(39), char(36)MySQL heeft zulke typen niet; de tekst die MariaDB ervoor schrijft, blijft behouden.type_replaced
BINARY, VARBINARY, BLOBbehoudenBytes blijven bytes.
PARTITION BYéén tabelDe rijen zijn dezelfde; partitioneer de tabel opnieuw als dat nodig is.partitions_dropped
WITH SYSTEM VERSIONING (MariaDB)een tabel met de huidige rijenEen dump bevat alleen de huidige rijen; MySQL heeft geen systeemversiebeheer.system_versioning_dropped
Aria, ColumnStore, CONNECT, Spider, RocksDB (MariaDB)InnoDBMySQL heeft geen van deze engines. Elke andere engine blijft behouden.engine_dropped
CREATE SEQUENCE (MariaDB)niet aangemaaktMySQL heeft geen sequences.sequence_not_converted
views, triggers, procedures, functions and eventsvermeld in het rapportZe worden vermeld zodat je ze opnieuw kunt maken; hun code noemt vaak de definer en serverfuncties.not_converted_objects
NOT NULL columns with values that become NULLNOT NULL weggelatenEen kolom waarvan waarden NULL moesten worden, kan NOT NULL niet houden, anders zou het laden stoppen.not_null_relaxed
text that isn't valid in its character setde foute bytes als het vervangingstekenHet script is UTF-8; bytes die dat niet zijn, zouden het laden stoppen.invalid_utf8_replaced
text decoded twice (ñ)ongewijzigd gekopieerdDe dump bevat precies deze tekens, dus ze worden gekopieerd; het rapport wijst ze aan.mojibake_suspected
dumps without CREATE TABLEtypen afgeleid uit de waardenEen dump gemaakt met --no-create-info bevat alleen rijen, dus de typen komen uit de waarden.no_schema
geometries in a dump without CREATE TABLEGEOMETRYHet geometrieformaat van MySQL wordt herkend aan de waarden.
SET NAMES utf8 from utf8mb4 tablesgeconverteerd, met een waarschuwingmysqldump van MySQL 5.x schrijft standaard 3-byte utf8 en vervangt elke emoji door een vraagteken voordat een converter het bestand ziet.dump_lost_four_byte_chars
dumps without SET NAMES whose text isn't UTF-8gelezen als Latin-1 (Windows-1252)latin1 in MySQL is Windows-1252, de gebruikelijke codering van zulke dumps.charset_guessed
sjis, cp932, gbk, big5 dumpsgelezen als UTF-8, met een waarschuwingDeze coderingen worden nog niet gedecodeerd.unsupported_charset
UNHEX('..'), CONVERT(b'..', UNSIGNED), CONVERT(".." USING x), ST_GeomFromText('..') in rowsgeëvalueerdSommige dumptools schrijven waarden als deze aanroepen; ze worden gelezen als de waarden die ze opleveren.
other expressions in rowsNULLEen converter die geen database draait, kan ze niet evalueren.expression_value
DEFAULT in VALUESde standaardwaarde van de kolomEen letterlijke standaardwaarde wordt in de rij gekopieerd.default_keyword_filled
DEFAULT in VALUES without a literal defaultNULLEr is geen waarde om te kopiëren.default_keyword_null
REPLACE and INSERT IGNOREgewone rijenEen dump heeft één rij per sleutel, dus de rijen zijn dezelfde.replace_as_insert
types IntoSQL doesn't knowLONGBLOBEen blob bevat de bytes van elke waarde; wijzig het type na het laden.unknown_type
values that don't fit their columnNULLEen beschadigde of met de hand geschreven dump kan waarden bevatten die de kolom niet aankan; ze worden NULL zodat de rest laadt.invalid_value_null
unreadable geometriesNULLBytes die geen geometrie zijn, kunnen niet als geometrie worden opgeslagen.bad_geometry
TIMESTAMPbehouden, geladen in de tijdzone die de dump vermeldtHet script stelt dezelfde tijdzone in als de dump, dus elk moment is hetzelfde.
VECTOR(n) (MariaDB 11.7+)json met de floats als arrayMySQL 5.7 en 8.0 hebben geen vectortype; een JSON-array behoudt elke float op elke versie.type_replaced

Het script in MySQL laden

Het script maakt de tabellen aan, kopieert de rijen en voegt daarna sleutels, indexen en refererende sleutels toe, zodat het snel laadt en bij de eerste fout stopt.

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

Refererende sleutels worden aangemaakt zoals de dump ze declareert, met FOREIGN_KEY_CHECKS=0 terwijl de rijen laden, zodat een rij die naar een ontbrekende rij verwijst het laden niet stopt.

Voer bij een grote dump de client uit op dezelfde machine als de server, en verhoog max_allowed_packet als één rij erg groot is.

IntoSQL Pro laadt het bestand rechtstreeks in MySQL vanuit de desktopapp of de opdrachtregel, zonder een script te schrijven.

Een dump van MariaDB maken voor het beste resultaat

De converter leest wat de dump bevat. Met deze opties blijft er meer van je data in staan:

  • --default-character-set=utf8mb4 behoudt emoji en andere 4-bytestekens, die een utf8mb3-dump kwijtraakt voordat de converter hem ziet.
  • --hex-blob schrijft binaire kolommen en VECTOR-waarden als hexadecimaal, wat kopiëren tussen systemen overleeft.
  • --routines --triggers --events voegen die objecten aan de dump toe, zodat het rapport ze kan vermelden.

Wat niet wordt geconverteerd

Weergaven, triggers, opgeslagen procedures, functies en gebeurtenissen zijn geschreven in de eigen taal van MariaDB. Ze staan op naam in het rapport en worden nooit stilletjes weggelaten, zodat je ze kunt herschrijven voor MySQL.

Vragen over MariaDB naar MySQL

Staat je vraag er niet bij? Schrijf ons via de contactpagina en een mens antwoordt. Contactpagina

Wordt mijn dump geüpload?

Nee. De converter draait in je browser en leest de dump in delen van je schijf, dus hij verlaat je computer nooit. De desktopapp en de opdrachtregel converteren ook op je computer.

Hoe groot mag de dump zijn?

De converter houdt nooit de hele dump in het geheugen: hij leest het bestand twee keer, in bereiken, en schrijft het script gaandeweg. Dumps van meerdere gigabytes worden geconverteerd in de browser, in de desktopapp en met de opdrachtregel.

Van welke MariaDB-versies kan de dump komen?

Dumps van mariadb-dump en mysqldump op MariaDB 10.3 tot en met 12, met één INSERT per tabel of één per rij. Elke testdump komt van MariaDB 10.11, 11.4 en 11.8 en wordt cel voor cel met zijn bron vergeleken.

Blijven UUID-, INET6-, JSON- en VECTOR-kolommen behouden?

UUID wordt char(36), INET4 en INET6 varchar, JSON json en VECTOR een json-array van zijn floats, omdat MySQL 5.7 en 8.0 die typen niet hebben.

Blijven AUTO_INCREMENT-waarden en sequences behouden?

AUTO_INCREMENT blijft ongewijzigd en gaat verder waar de dump het achterliet. MySQL heeft geen sequences, dus die en de standaardwaarden die er een waarde uit halen, worden gemeld.

En opgeslagen procedures en triggers?

Ze staan op naam in het rapport en worden niet geconverteerd, zodat je elk ervan kunt toetsen aan MySQL voordat je het opnieuw maakt.

Op welke MySQL-versies laadt het script?

MySQL 5.7 en later. Elke testdump laadt op 5.7 en 9 en stopt bij de eerste fout als er iets misgaat.