Konversi MariaDB ke MySQL
Letakkan dump dari mariadb-dump, mysqldump, phpMyAdmin, atau Adminer, sebagai .sql atau .sql.gz, lalu unduh skrip MySQL dengan tabel, kunci, indeks, dan data yang sama. Setiap nilai yang tidak bisa disimpan MySQL apa adanya, dan setiap objek yang tidak didukungnya, dicantumkan di laporan.
18 baris dikonversi, 4 perbaikan, tidak ada yang ditolak
Tabel di shop_2024_mariadb.sqlDump MariaDB 11.8.9-MariaDB-ubu2404 · ditulis oleh mariadb-dump · utf8mb4
customers8 baris2
8 kolom 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 varchar(39) orders10 baris2
12 kolom 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 char(36) not null invoice int(11) not null details json updated_at timestamp 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;
Perbaikan
- customers memakai collation utf8mb4_uca1400_ai_ci, yang tidak ada di MySQL, jadi memakai utf8mb4_unicode_520_ci; urutan dan perbandingan teks bisa sedikit berbeda.
- "last_ip" di customers adalah inet6, yang tidak ada di MySQL, jadi menjadi varchar(39) dengan nilai yang sama.
- orders memakai collation utf8mb4_uca1400_ai_ci, yang tidak ada di MySQL, jadi memakai utf8mb4_unicode_520_ci; urutan dan perbandingan teks bisa sedikit berbeda.
- "order_ref" di orders adalah uuid, yang tidak ada di MySQL, jadi menjadi char(36) dengan nilai yang sama.
Perlu diperiksa
- 1 sequence tidak dibuat; MySQL tidak punya sequence. Simpan nilai berikutnya di sebuah tabel jika aplikasi Anda memerlukannya.
- Default "invoice" di orders tidak bisa ditulis untuk MySQL (a sequence), jadi kolom itu tanpa default. Tambahkan default secara manual jika baris baru memerlukannya.
File Anda dikonversi di komputer ini dan tidak pernah diunggah.
Contoh lain:
Yang berubah dari MariaDB ke MySQL
Setiap baris adalah aturan yang diterapkan konverter, beserta baris laporan yang ditulisnya saat aturan itu mengubah sesuatu di data Anda.
utf8mb4_0900_* and utf8mb4_uca1400_* collations
utf8mb4_unicode_520_ci (utf8mb4_bin untuk yang biner)
MySQL tidak mengenal collation yang lebih baru, galat yang membuat sebagian besar dump MySQL 8 gagal dimuat di tempat lain. unicode_520 paling dekat mengikuti aturan Unicode yang sama.
Baris laporan: collation_replaced
zero, partial or impossible dates (0000-00-00, 2024-02-30)
dipertahankan
Skrip dimuat dengan ALLOW_INVALID_DATES dan tanpa NO_ZERO_DATE, jadi MySQL mempertahankan nilai yang sama seperti di sumber.
TIME
TIME, termasuk durasi
Tipe yang sama, dengan rentang yang sama.
TINYINT(1), BOOL
TINYINT(1)
Tipe yang sama dengan nilai yang sama.
UNSIGNED and ZEROFILL
dipertahankan
Tipe yang sama.
ENUM and SET, the '' error value included
dipertahankan
Tipe yang sama; skrip dimuat tanpa strict mode, jadi nilai galat dimuat apa adanya.
JSON
JSON
MySQL membaca teks JSON yang sama.
NUL bytes in text
dipertahankan
Nilainya disalin dengan escape yang sama seperti di sumber.
AUTO_INCREMENT
AUTO_INCREMENT dengan penghitung tabel
Penghitung berlanjut dari posisi terakhir di sumber, termasuk penghitung per grup MyISAM.
MyISAM AUTO_INCREMENT on the second column of a key, in a table that isn't MyISAM in the dump
indeks pada kolom dan satu penghitung untuk tabel
InnoDB hanya menghitung kolom yang berada di awal indeks, dan sekali untuk seluruh tabel.
Baris laporan: myisam_group_autoincrement
ON UPDATE CURRENT_TIMESTAMP
dipertahankan
Klausa yang sama, dengan pecahan detik kolom.
generated columns
VIRTUAL atau STORED seperti di sumber
Rumus yang sama, diterjemahkan istilah demi istilah.
generated columns with functions IntoSQL doesn't read
kolom biasa
Rumus yang tidak bisa dibaca IntoSQL menyisakan kolom biasa dan satu baris laporan.
Baris laporan: generated_not_translated
INVISIBLE columns
kolom biasa
MySQL punya kolom tak terlihat sejak 8.0.23, MariaDB sejak 10.3.
Baris laporan: invisible_column
CHECK constraints
dipertahankan (MySQL 5.7 mem-parsing dan mengabaikannya)
CHECK yang sama, diterjemahkan istilah demi istilah.
CHECK constraints with functions IntoSQL doesn't read
tidak dibuat
CHECK yang tidak bisa dibaca IntoSQL dihilangkan dan dilaporkan.
Baris laporan: check_skipped
CHECK ... NOT ENFORCED
tidak dibuat
MySQL 5.7 dan MariaDB tidak bisa menyimpan CHECK tanpa menerapkannya, dan baris bisa melanggarnya.
Baris laporan: check_not_enforced
expression defaults, and defaults on TEXT, BLOB, JSON and GEOMETRY
tanpa default
MySQL menerimanya sejak 8.0.13; skrip dimuat di 5.7, jadi dihilangkan dan dilaporkan. MariaDB menerimanya.
Baris laporan: default_not_translated
functional indexes, KEY ((expr))
tidak dibuat
MySQL mengindeks ekspresi sejak 8.0.13 dan MariaDB sama sekali tidak; kolom generated dengan indeks memberi hasil yang sama.
Baris laporan: index_skipped
keys and indexes on a prefix, c(20)
dipertahankan
Indeks yang sama.
FULLTEXT indexes
dipertahankan
Indeks yang sama; MATCH ... AGAINST berjalan seperti sebelumnya.
SPATIAL indexes
dipertahankan
Indeks yang sama.
foreign keys
dipertahankan, dimuat dengan FOREIGN_KEY_CHECKS=0
Key yang sama; baris dimuat seperti dari dump sumber.
GEOMETRY, POINT, POLYGON...
dipertahankan, dengan SRID setiap nilai
Byte geometri milik server disalin, termasuk SRID.
INET4, INET6, UUID (MariaDB)
varchar(15), varchar(39), char(36)
MySQL tidak punya tipe ini; teks yang ditulis MariaDB untuknya dipertahankan.
Baris laporan: type_replaced
BINARY, VARBINARY, BLOB
dipertahankan
Byte tetap byte.
PARTITION BY
satu tabel
Barisnya sama; partisi ulang tabel jika diperlukan.
Baris laporan: partitions_dropped
WITH SYSTEM VERSIONING (MariaDB)
tabel dengan baris saat ini
Dump hanya berisi baris saat ini; MySQL tidak punya system versioning.
Baris laporan: system_versioning_dropped
Aria, ColumnStore, CONNECT, Spider, RocksDB (MariaDB)
InnoDB
MySQL tidak punya engine ini. Engine lainnya dipertahankan.
Baris laporan: engine_dropped
CREATE SEQUENCE (MariaDB)
tidak dibuat
MySQL tidak punya sequence.
Baris laporan: sequence_not_converted
views, triggers, procedures, functions and events
dicantumkan di laporan
Dicantumkan agar Anda bisa membuatnya ulang; kodenya sering menyebut definer dan fitur server.
Baris laporan: not_converted_objects
NOT NULL columns with values that become NULL
NOT NULL dihapus
Kolom yang nilainya harus menjadi NULL tidak bisa mempertahankan NOT NULL, atau pemuatan akan berhenti.
Baris laporan: not_null_relaxed
text that isn't valid in its character set
byte yang rusak menjadi karakter pengganti
Skrip berformat UTF-8; byte yang bukan UTF-8 akan menghentikan pemuatan.
Baris laporan: invalid_utf8_replaced
text decoded twice (ñ)
disalin apa adanya
Dump berisi persis karakter ini, jadi karakter itu disalin; laporan menunjukkannya.
Baris laporan: mojibake_suspected
dumps without CREATE TABLE
tipe dibaca dari nilai
Dump yang dibuat dengan --no-create-info hanya berisi baris, jadi tipenya diambil dari nilai.
Baris laporan: no_schema
geometries in a dump without CREATE TABLE
GEOMETRY
Format geometri MySQL dikenali dari nilainya.
SET NAMES utf8 from utf8mb4 tables
dikonversi, dengan peringatan
mysqldump di MySQL 5.x secara default menulis utf8 3 byte dan mengganti setiap emoji dengan tanda tanya sebelum konverter mana pun melihat file itu.
Baris laporan: dump_lost_four_byte_chars
dumps without SET NAMES whose text isn't UTF-8
dibaca sebagai Latin-1 (Windows-1252)
latin1 di MySQL adalah Windows-1252, pengodean yang biasa dipakai dump semacam itu.
Baris laporan: charset_guessed
sjis, cp932, gbk, big5 dumps
dibaca sebagai UTF-8, dengan peringatan
Pengodean ini belum didekode.
Baris laporan: unsupported_charset
UNHEX('..'), CONVERT(b'..', UNSIGNED), CONVERT(".." USING x), ST_GeomFromText('..') in rows
dievaluasi
Beberapa alat dump menulis nilai sebagai panggilan ini; panggilan itu dibaca sebagai nilai yang dihasilkannya.
other expressions in rows
NULL
Konverter yang tidak menjalankan database tidak bisa mengevaluasinya.
Baris laporan: expression_value
DEFAULT in VALUES
nilai default kolom
Default literal disalin ke baris.
Baris laporan: default_keyword_filled
DEFAULT in VALUES without a literal default
NULL
Tidak ada nilai untuk disalin.
Baris laporan: default_keyword_null
REPLACE and INSERT IGNORE
baris biasa
Dump punya satu baris per kunci, jadi barisnya sama.
Baris laporan: replace_as_insert
types IntoSQL doesn't know
LONGBLOB
Blob memuat byte nilai apa pun; ubah tipenya setelah pemuatan.
Baris laporan: unknown_type
values that don't fit their column
NULL
Dump yang rusak atau ditulis manual bisa berisi nilai yang tidak muat di kolomnya; nilai itu menjadi NULL agar sisanya tetap dimuat.
Baris laporan: invalid_value_null
unreadable geometries
NULL
Byte yang bukan geometri tidak bisa disimpan sebagai geometri.
Baris laporan: bad_geometry
TIMESTAMP
dipertahankan, dimuat dalam zona waktu yang disebutkan dump
Skrip mengatur zona waktu yang sama seperti dump, jadi setiap momen tetap sama.
VECTOR(n) (MariaDB 11.7+)
json dengan float sebagai array
MySQL 5.7 dan 8.0 tidak punya tipe vektor; array JSON mempertahankan setiap float di setiap versi.
Baris laporan: type_replaced
| Di MariaDB | Di MySQL | Baris laporan |
|---|---|---|
| utf8mb4_0900_* and utf8mb4_uca1400_* collations | utf8mb4_unicode_520_ci (utf8mb4_bin untuk yang biner)MySQL tidak mengenal collation yang lebih baru, galat yang membuat sebagian besar dump MySQL 8 gagal dimuat di tempat lain. unicode_520 paling dekat mengikuti aturan Unicode yang sama. | collation_replaced |
| zero, partial or impossible dates (0000-00-00, 2024-02-30) | dipertahankanSkrip dimuat dengan ALLOW_INVALID_DATES dan tanpa NO_ZERO_DATE, jadi MySQL mempertahankan nilai yang sama seperti di sumber. | |
| TIME | TIME, termasuk durasiTipe yang sama, dengan rentang yang sama. | |
| TINYINT(1), BOOL | TINYINT(1)Tipe yang sama dengan nilai yang sama. | |
| UNSIGNED and ZEROFILL | dipertahankanTipe yang sama. | |
| ENUM and SET, the '' error value included | dipertahankanTipe yang sama; skrip dimuat tanpa strict mode, jadi nilai galat dimuat apa adanya. | |
| JSON | JSONMySQL membaca teks JSON yang sama. | |
| NUL bytes in text | dipertahankanNilainya disalin dengan escape yang sama seperti di sumber. | |
| AUTO_INCREMENT | AUTO_INCREMENT dengan penghitung tabelPenghitung berlanjut dari posisi terakhir di sumber, termasuk penghitung per grup MyISAM. | |
| MyISAM AUTO_INCREMENT on the second column of a key, in a table that isn't MyISAM in the dump | indeks pada kolom dan satu penghitung untuk tabelInnoDB hanya menghitung kolom yang berada di awal indeks, dan sekali untuk seluruh tabel. | myisam_group_autoincrement |
| ON UPDATE CURRENT_TIMESTAMP | dipertahankanKlausa yang sama, dengan pecahan detik kolom. | |
| generated columns | VIRTUAL atau STORED seperti di sumberRumus yang sama, diterjemahkan istilah demi istilah. | |
| generated columns with functions IntoSQL doesn't read | kolom biasaRumus yang tidak bisa dibaca IntoSQL menyisakan kolom biasa dan satu baris laporan. | generated_not_translated |
| INVISIBLE columns | kolom biasaMySQL punya kolom tak terlihat sejak 8.0.23, MariaDB sejak 10.3. | invisible_column |
| CHECK constraints | dipertahankan (MySQL 5.7 mem-parsing dan mengabaikannya)CHECK yang sama, diterjemahkan istilah demi istilah. | |
| CHECK constraints with functions IntoSQL doesn't read | tidak dibuatCHECK yang tidak bisa dibaca IntoSQL dihilangkan dan dilaporkan. | check_skipped |
| CHECK ... NOT ENFORCED | tidak dibuatMySQL 5.7 dan MariaDB tidak bisa menyimpan CHECK tanpa menerapkannya, dan baris bisa melanggarnya. | check_not_enforced |
| expression defaults, and defaults on TEXT, BLOB, JSON and GEOMETRY | tanpa defaultMySQL menerimanya sejak 8.0.13; skrip dimuat di 5.7, jadi dihilangkan dan dilaporkan. MariaDB menerimanya. | default_not_translated |
| functional indexes, KEY ((expr)) | tidak dibuatMySQL mengindeks ekspresi sejak 8.0.13 dan MariaDB sama sekali tidak; kolom generated dengan indeks memberi hasil yang sama. | index_skipped |
| keys and indexes on a prefix, c(20) | dipertahankanIndeks yang sama. | |
| FULLTEXT indexes | dipertahankanIndeks yang sama; MATCH ... AGAINST berjalan seperti sebelumnya. | |
| SPATIAL indexes | dipertahankanIndeks yang sama. | |
| foreign keys | dipertahankan, dimuat dengan FOREIGN_KEY_CHECKS=0Key yang sama; baris dimuat seperti dari dump sumber. | |
| GEOMETRY, POINT, POLYGON... | dipertahankan, dengan SRID setiap nilaiByte geometri milik server disalin, termasuk SRID. | |
| INET4, INET6, UUID (MariaDB) | varchar(15), varchar(39), char(36)MySQL tidak punya tipe ini; teks yang ditulis MariaDB untuknya dipertahankan. | type_replaced |
| BINARY, VARBINARY, BLOB | dipertahankanByte tetap byte. | |
| PARTITION BY | satu tabelBarisnya sama; partisi ulang tabel jika diperlukan. | partitions_dropped |
| WITH SYSTEM VERSIONING (MariaDB) | tabel dengan baris saat iniDump hanya berisi baris saat ini; MySQL tidak punya system versioning. | system_versioning_dropped |
| Aria, ColumnStore, CONNECT, Spider, RocksDB (MariaDB) | InnoDBMySQL tidak punya engine ini. Engine lainnya dipertahankan. | engine_dropped |
| CREATE SEQUENCE (MariaDB) | tidak dibuatMySQL tidak punya sequence. | sequence_not_converted |
| views, triggers, procedures, functions and events | dicantumkan di laporanDicantumkan agar Anda bisa membuatnya ulang; kodenya sering menyebut definer dan fitur server. | not_converted_objects |
| NOT NULL columns with values that become NULL | NOT NULL dihapusKolom yang nilainya harus menjadi NULL tidak bisa mempertahankan NOT NULL, atau pemuatan akan berhenti. | not_null_relaxed |
| text that isn't valid in its character set | byte yang rusak menjadi karakter penggantiSkrip berformat UTF-8; byte yang bukan UTF-8 akan menghentikan pemuatan. | invalid_utf8_replaced |
| text decoded twice (ñ) | disalin apa adanyaDump berisi persis karakter ini, jadi karakter itu disalin; laporan menunjukkannya. | mojibake_suspected |
| dumps without CREATE TABLE | tipe dibaca dari nilaiDump yang dibuat dengan --no-create-info hanya berisi baris, jadi tipenya diambil dari nilai. | no_schema |
| geometries in a dump without CREATE TABLE | GEOMETRYFormat geometri MySQL dikenali dari nilainya. | |
| SET NAMES utf8 from utf8mb4 tables | dikonversi, dengan peringatanmysqldump di MySQL 5.x secara default menulis utf8 3 byte dan mengganti setiap emoji dengan tanda tanya sebelum konverter mana pun melihat file itu. | dump_lost_four_byte_chars |
| dumps without SET NAMES whose text isn't UTF-8 | dibaca sebagai Latin-1 (Windows-1252)latin1 di MySQL adalah Windows-1252, pengodean yang biasa dipakai dump semacam itu. | charset_guessed |
| sjis, cp932, gbk, big5 dumps | dibaca sebagai UTF-8, dengan peringatanPengodean ini belum didekode. | unsupported_charset |
| UNHEX('..'), CONVERT(b'..', UNSIGNED), CONVERT(".." USING x), ST_GeomFromText('..') in rows | dievaluasiBeberapa alat dump menulis nilai sebagai panggilan ini; panggilan itu dibaca sebagai nilai yang dihasilkannya. | |
| other expressions in rows | NULLKonverter yang tidak menjalankan database tidak bisa mengevaluasinya. | expression_value |
| DEFAULT in VALUES | nilai default kolomDefault literal disalin ke baris. | default_keyword_filled |
| DEFAULT in VALUES without a literal default | NULLTidak ada nilai untuk disalin. | default_keyword_null |
| REPLACE and INSERT IGNORE | baris biasaDump punya satu baris per kunci, jadi barisnya sama. | replace_as_insert |
| types IntoSQL doesn't know | LONGBLOBBlob memuat byte nilai apa pun; ubah tipenya setelah pemuatan. | unknown_type |
| values that don't fit their column | NULLDump yang rusak atau ditulis manual bisa berisi nilai yang tidak muat di kolomnya; nilai itu menjadi NULL agar sisanya tetap dimuat. | invalid_value_null |
| unreadable geometries | NULLByte yang bukan geometri tidak bisa disimpan sebagai geometri. | bad_geometry |
| TIMESTAMP | dipertahankan, dimuat dalam zona waktu yang disebutkan dumpSkrip mengatur zona waktu yang sama seperti dump, jadi setiap momen tetap sama. | |
| VECTOR(n) (MariaDB 11.7+) | json dengan float sebagai arrayMySQL 5.7 dan 8.0 tidak punya tipe vektor; array JSON mempertahankan setiap float di setiap versi. | type_replaced |
Muat skrip ke MySQL
Skrip membuat tabel, menyalin baris, lalu menambahkan kunci, indeks, dan foreign key, jadi pemuatan berjalan cepat dan berhenti di galat pertama.
mysql --default-character-set=utf8mb4 mydb < mariadb.mysql.sqlForeign key dibuat seperti yang dideklarasikan dump, dengan FOREIGN_KEY_CHECKS=0 selama baris dimuat, jadi baris yang merujuk ke baris yang tidak ada tidak menghentikan pemuatan.
Untuk dump yang besar, jalankan klien di mesin yang sama dengan server, dan naikkan max_allowed_packet jika satu baris sangat besar.
IntoSQL Pro memuat file langsung ke MySQL dari aplikasi desktop atau command line, tanpa menulis skrip.
Buat dump MariaDB untuk hasil terbaik
Konverter membaca apa yang ada di dump. Opsi berikut membuat lebih banyak data Anda tetap ada di dalamnya:
- --default-character-set=utf8mb4 mempertahankan emoji dan karakter 4 byte lainnya, yang hilang di dump utf8mb3 sebelum konverter melihatnya.
- --hex-blob menulis kolom biner dan nilai VECTOR sebagai heksadesimal, yang tetap utuh saat disalin antarsistem.
- --routines --triggers --events menambahkan objek-objek itu ke dump, sehingga laporan bisa mencantumkannya.
Yang tidak dikonversi
View, trigger, stored procedure, fungsi, dan event ditulis dalam bahasa MariaDB sendiri. Semuanya dicantumkan di laporan berdasarkan nama, tidak pernah dibuang diam-diam, sehingga Anda bisa menulis ulang untuk MySQL.
Pertanyaan tentang MariaDB ke MySQL
Tidak terjawab di sini? Tulis ke kami dari halaman kontak, dan seseorang akan membalas. Halaman kontak
Apakah dump saya diunggah?
Tidak. Konverter berjalan di browser Anda dan membaca dump dari disk Anda sepotong demi sepotong, jadi dump tidak pernah meninggalkan komputer Anda. Aplikasi desktop dan command line juga mengonversi di komputer Anda.
Seberapa besar dump yang bisa dipakai?
Konverter tidak pernah menyimpan seluruh dump di memori: file dibaca dua kali, per rentang, dan skrip ditulis sambil berjalan. Dump berukuran beberapa gigabyte bisa dikonversi di browser, di aplikasi desktop, dan dengan command line.
Dump dari versi MariaDB mana yang bisa dipakai?
Dump dari mariadb-dump dan mysqldump di MariaDB 10.3 sampai 12, dengan satu INSERT per tabel atau satu per baris. Setiap dump uji berasal dari MariaDB 10.11, 11.4, dan 11.8 dan dibandingkan dengan sumbernya sel demi sel.
Apakah kolom UUID, INET6, JSON, dan VECTOR dipertahankan?
UUID menjadi char(36), INET4 dan INET6 menjadi varchar, JSON menjadi json, dan VECTOR menjadi array json berisi float-nya, karena MySQL 5.7 dan 8.0 tidak punya tipe tersebut.
Apakah nilai AUTO_INCREMENT dan sequence dipertahankan?
AUTO_INCREMENT tetap apa adanya dan berlanjut dari posisi terakhir di dump. MySQL tidak punya sequence, jadi sequence dan default yang mengambil nilai darinya dicantumkan di laporan.
Bagaimana dengan stored procedure dan trigger?
Semuanya dicantumkan di laporan berdasarkan nama dan tidak dikonversi, jadi Anda bisa memeriksa masing-masing dengan MySQL sebelum membuatnya ulang.
Di versi MySQL mana skrip bisa dimuat?
MySQL 5.7 dan yang lebih baru. Setiap dump uji dimuat di 5.7 dan 9, dan berhenti di galat pertama jika ada yang salah.