Chuyển MySQL sang MariaDB
Thả bản dump từ mysqldump, mariadb-dump, mysqlpump, phpMyAdmin hoặc Adminer, dạng .sql hoặc .sql.gz, và tải xuống tập lệnh MariaDB với cùng bảng, khóa, chỉ mục và dữ liệu. Mọi giá trị MariaDB không chứa được nguyên trạng, và mọi đối tượng nó không hỗ trợ, đều được liệt kê trong báo cáo.
Đã chuyển đổi 18 hàng, 2 bản sửa, không hàng nào bị từ chối
Các bảng trong shop_2024.sqlBản dump MySQL 8.0.46 · do mysqldump ghi · utf8mb4
customers8 hàng1
7 cột id int 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 orders10 hàng1
9 cột id int unsigned not null customer_id int unsigned not null status enum('pending','paid','shipped','cancelled') not null total decimal(10,2) not null items smallint unsigned not null ordered_at datetime not null shipped_at datetime note varchar(255) 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 TABLE `customers` (
`id` int 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,
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 unsigned NOT NULL AUTO_INCREMENT,
`customer_id` int unsigned NOT NULL,
`status` enum('pending','paid','shipped','cancelled') NOT NULL DEFAULT 'pending',
`total` decimal(10,2) NOT NULL,
`items` smallint unsigned NOT NULL DEFAULT 1,
`ordered_at` datetime NOT NULL,
`shipped_at` datetime DEFAULT NULL,
`note` varchar(255) 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`) VALUES (1,'Ana Martínez','ana@example.com','MX',1,'2023-01-15','2023-01-15 10:24:00'),(2,'Zoë Müller','zoe@example.de','DE',1,'2023-02-03','2023-02-03 08:11:42'),(3,'José Peña','jose@example.es','ES',0,'2023-03-21','2023-03-21 19:05:17'),(4,'李雷','lilei@example.cn','CN',1,'2023-05-09','2023-05-09 02:40:00'),(5,'Noah O\'Brien','noah@example.ie','IE',1,'0000-00-00','2023-06-30 14:00:00'),(6,'Amélie Laurent','amelie@example.fr','FR',1,'2024-01-02','2024-01-02 09:30:00'),(7,'Ravi Patel','ravi@example.in','IN',0,'2024-02-29','2024-02-29 23:59:59'),(8,'Sofia Rossi 🌻','sofia@example.it','IT',1,'2024-04-12','2024-04-12 12:12:12');
INSERT INTO `orders` (`id`,`customer_id`,`status`,`total`,`items`,`ordered_at`,`shipped_at`,`note`,`updated_at`) VALUES (1,1,'shipped',129.90,3,'2024-03-01 10:00:00','2024-03-02 16:30:00',NULL,'2024-03-02 16:30:00'),(2,2,'paid',54.00,1,'2024-03-02 11:15:00',NULL,'Gift wrap 🎁','2024-03-02 11:20:00'),(3,1,'cancelled',12.50,1,'2024-03-03 09:45:00',NULL,'Customer changed their mind','2024-03-03 10:00:00'),(4,4,'shipped',980.00,12,'2024-03-05 02:10:00','2024-03-07 08:00:00','请小心轻放','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','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\"','2024-03-11 09:00:00'),(7,8,'paid',76.20,2,'2024-03-11 18:45:00',NULL,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','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','2024-03-15 10:00:00'),(10,7,'paid',1499.00,1,'2024-03-15 21:05:00',NULL,'C:\\Users\\ravi\\invoice.pdf','2024-03-15 21:05:00');
SET UNIQUE_CHECKS = 1;
SET FOREIGN_KEY_CHECKS = 1;
Bản sửa
- customers dùng collation utf8mb4_0900_ai_ci, mà MariaDB không có, nên dùng utf8mb4_unicode_520_ci; văn bản có thể sắp xếp và so sánh hơi khác.
- orders dùng collation utf8mb4_0900_ai_ci, mà MariaDB không có, nên dùng utf8mb4_unicode_520_ci; văn bản có thể sắp xếp và so sánh hơi khác.
Tệp được chuyển đổi ngay trên máy tính này và không bao giờ được tải lên.
Mẫu khác:
Những gì thay đổi từ MySQL sang MariaDB
Mỗi hàng là một quy tắc trình chuyển đổi áp dụng, kèm dòng báo cáo được ghi khi quy tắc thay đổi dữ liệu của bạn.
utf8mb4_0900_* and utf8mb4_uca1400_* collations
utf8mb4_unicode_520_ci cho utf8mb4_0900_* (utf8mb4_bin cho collation nhị phân)
MariaDB không biết các collation mới hơn, lỗi khiến hầu hết bản dump MySQL 8 không nạp được ở nơi khác. unicode_520 bám sát nhất cùng quy tắc Unicode.
Dòng báo cáo: collation_replaced
zero, partial or impossible dates (0000-00-00, 2024-02-30)
được giữ
Tập lệnh nạp với ALLOW_INVALID_DATES và không có NO_ZERO_DATE, nên MariaDB giữ đúng các giá trị của nguồn.
TIME
TIME, kể cả khoảng thời gian
Cùng kiểu, cùng phạm vi.
TINYINT(1), BOOL
TINYINT(1)
Cùng kiểu, cùng giá trị.
UNSIGNED and ZEROFILL
được giữ
Cùng các kiểu.
ENUM and SET, the '' error value included
được giữ
Cùng các kiểu; tập lệnh nạp không ở chế độ nghiêm ngặt, nên giá trị lỗi được nạp nguyên trạng.
JSON
JSON (LONGTEXT được MariaDB kiểm tra)
MariaDB đọc cùng văn bản JSON.
NUL bytes in text
được giữ
Giá trị được sao chép với cùng chuỗi thoát mà nguồn đã dùng.
AUTO_INCREMENT
AUTO_INCREMENT với bộ đếm của bảng
Bộ đếm tiếp tục từ chỗ nguồn dừng lại, kể cả bộ đếm theo nhóm của MyISAM.
MyISAM AUTO_INCREMENT on the second column of a key, in a table that isn't MyISAM in the dump
một chỉ mục trên cột và một bộ đếm cho cả bảng
InnoDB chỉ đếm một cột khi nó đứng đầu một chỉ mục, và đếm một lần cho cả bảng.
Dòng báo cáo: myisam_group_autoincrement
ON UPDATE CURRENT_TIMESTAMP
được giữ
Cùng mệnh đề, với phần giây lẻ của cột.
generated columns
VIRTUAL hoặc STORED như trong nguồn
Cùng công thức, được chuyển đổi từng thành phần.
generated columns with functions IntoSQL doesn't read
một cột thường
Công thức IntoSQL không đọc được để lại một cột thường và một dòng trong báo cáo.
Dòng báo cáo: generated_not_translated
INVISIBLE columns
cột INVISIBLE
MySQL có cột ẩn từ 8.0.23, MariaDB từ 10.3.
CHECK constraints
được giữ
Cùng các ràng buộc kiểm tra, được chuyển đổi từng thành phần.
CHECK constraints with functions IntoSQL doesn't read
không được tạo
Ràng buộc kiểm tra IntoSQL không đọc được sẽ bị bỏ và được báo cáo.
Dòng báo cáo: check_skipped
CHECK ... NOT ENFORCED
không được tạo
MySQL 5.7 và MariaDB không thể giữ một ràng buộc kiểm tra mà không áp dụng nó, và các hàng có thể vi phạm nó.
Dòng báo cáo: check_not_enforced
expression defaults, and defaults on TEXT, BLOB, JSON and GEOMETRY
được giữ
MySQL nhận chúng từ 8.0.13; tập lệnh nạp trên 5.7, nên chúng bị bỏ và được báo cáo. MariaDB nhận chúng.
Dòng báo cáo: default_not_translated
functional indexes, KEY ((expr))
không được tạo
MySQL lập chỉ mục trên biểu thức từ 8.0.13 và MariaDB hoàn toàn không; một cột tính toán có chỉ mục làm được điều tương tự.
Dòng báo cáo: index_skipped
keys and indexes on a prefix, c(20)
được giữ
Cùng chỉ mục.
FULLTEXT indexes
được giữ
Cùng chỉ mục; MATCH ... AGAINST hoạt động như trước.
SPATIAL indexes
được giữ
Cùng chỉ mục.
foreign keys
được giữ, nạp với FOREIGN_KEY_CHECKS=0
Cùng các khóa; các hàng được nạp như từ bản dump nguồn.
GEOMETRY, POINT, POLYGON...
được giữ, kèm SRID của từng giá trị
Các byte hình học gốc của máy chủ được sao chép, kể cả SRID.
INET4, INET6, UUID (MariaDB)
được giữ
MySQL không có các kiểu này; văn bản MariaDB ghi cho chúng được giữ.
BINARY, VARBINARY, BLOB
được giữ
Byte vẫn là byte.
PARTITION BY
một bảng
Các hàng giữ nguyên; hãy phân vùng lại bảng nếu cần.
Dòng báo cáo: partitions_dropped
WITH SYSTEM VERSIONING (MariaDB)
WITH SYSTEM VERSIONING, bắt đầu từ các hàng hiện tại
Bản dump chỉ chứa các hàng hiện tại; MySQL không có system versioning.
Aria, ColumnStore, CONNECT, Spider, RocksDB (MariaDB)
được giữ
MySQL không có engine nào trong số này. Mọi engine khác được giữ.
CREATE SEQUENCE (MariaDB)
CREATE SEQUENCE kèm giá trị tiếp theo
MySQL không có sequence.
views, triggers, procedures, functions and events
được liệt kê trong báo cáo
Chúng được liệt kê để bạn tạo lại; mã của chúng thường nêu definer và các tính năng của máy chủ.
Dòng báo cáo: not_converted_objects
NOT NULL columns with values that become NULL
bỏ NOT NULL
Cột có giá trị phải chuyển thành NULL không thể giữ NOT NULL, nếu không quá trình nạp sẽ dừng.
Dòng báo cáo: not_null_relaxed
text that isn't valid in its character set
byte lỗi thành ký tự thay thế
Tập lệnh là UTF-8; byte không hợp lệ sẽ làm dừng quá trình nạp.
Dòng báo cáo: invalid_utf8_replaced
text decoded twice (ñ)
sao chép nguyên trạng
Bản dump chứa đúng các ký tự này, nên chúng được sao chép; báo cáo chỉ ra chúng.
Dòng báo cáo: mojibake_suspected
dumps without CREATE TABLE
kiểu suy ra từ giá trị
Bản dump tạo với --no-create-info chỉ có các hàng, nên kiểu được suy ra từ giá trị.
Dòng báo cáo: no_schema
geometries in a dump without CREATE TABLE
GEOMETRY
Định dạng hình học của MySQL được nhận diện từ giá trị.
SET NAMES utf8 from utf8mb4 tables
được chuyển đổi, kèm cảnh báo
mysqldump của MySQL 5.x mặc định ghi utf8 3 byte và thay mọi emoji bằng dấu chấm hỏi trước khi bất kỳ trình chuyển đổi nào thấy tệp.
Dòng báo cáo: dump_lost_four_byte_chars
dumps without SET NAMES whose text isn't UTF-8
đọc dưới dạng Latin-1 (Windows-1252)
latin1 của MySQL là Windows-1252, bảng mã thường gặp của những bản dump như vậy.
Dòng báo cáo: charset_guessed
sjis, cp932, gbk, big5 dumps
đọc dưới dạng UTF-8, kèm cảnh báo
Các bảng mã này chưa được giải mã.
Dòng báo cáo: unsupported_charset
UNHEX('..'), CONVERT(b'..', UNSIGNED), CONVERT(".." USING x), ST_GeomFromText('..') in rows
được tính ra giá trị
Một số công cụ dump ghi giá trị dưới dạng các lệnh gọi này; chúng được đọc thành giá trị mà chúng tạo ra.
other expressions in rows
NULL
Trình chuyển đổi không chạy cơ sở dữ liệu thì không tính được chúng.
Dòng báo cáo: expression_value
DEFAULT in VALUES
giá trị mặc định của cột
Giá trị mặc định dạng hằng được sao chép vào hàng.
Dòng báo cáo: default_keyword_filled
DEFAULT in VALUES without a literal default
NULL
Không có giá trị nào để sao chép.
Dòng báo cáo: default_keyword_null
REPLACE and INSERT IGNORE
hàng thường
Bản dump có một hàng cho mỗi khóa, nên các hàng vẫn giống nhau.
Dòng báo cáo: replace_as_insert
types IntoSQL doesn't know
LONGBLOB
Blob chứa được byte của mọi giá trị; hãy đổi kiểu sau khi nạp.
Dòng báo cáo: unknown_type
values that don't fit their column
NULL
Bản dump bị hỏng hoặc viết tay có thể chứa giá trị mà cột không chứa được; chúng trở thành NULL để phần còn lại được nạp.
Dòng báo cáo: invalid_value_null
unreadable geometries
NULL
Byte không phải dữ liệu hình học thì không lưu được dưới dạng hình học.
Dòng báo cáo: bad_geometry
TIMESTAMP
được giữ, nạp theo múi giờ bản dump nêu
Tập lệnh đặt cùng múi giờ mà bản dump đã dùng, nên mọi thời điểm đều giữ nguyên.
VECTOR(n) (MariaDB 11.7+)
json với các số thực dưới dạng mảng
Tập lệnh nạp được trên MariaDB 10.11 trở lên, vốn không có kiểu vector; mảng JSON giữ mọi số thực, và VEC_FromText đọc lại được nó.
Dòng báo cáo: type_replaced
| Trong MySQL | Trong MariaDB | Dòng báo cáo |
|---|---|---|
| utf8mb4_0900_* and utf8mb4_uca1400_* collations | utf8mb4_unicode_520_ci cho utf8mb4_0900_* (utf8mb4_bin cho collation nhị phân)MariaDB không biết các collation mới hơn, lỗi khiến hầu hết bản dump MySQL 8 không nạp được ở nơi khác. unicode_520 bám sát nhất cùng quy tắc Unicode. | collation_replaced |
| zero, partial or impossible dates (0000-00-00, 2024-02-30) | được giữTập lệnh nạp với ALLOW_INVALID_DATES và không có NO_ZERO_DATE, nên MariaDB giữ đúng các giá trị của nguồn. | |
| TIME | TIME, kể cả khoảng thời gianCùng kiểu, cùng phạm vi. | |
| TINYINT(1), BOOL | TINYINT(1)Cùng kiểu, cùng giá trị. | |
| UNSIGNED and ZEROFILL | được giữCùng các kiểu. | |
| ENUM and SET, the '' error value included | được giữCùng các kiểu; tập lệnh nạp không ở chế độ nghiêm ngặt, nên giá trị lỗi được nạp nguyên trạng. | |
| JSON | JSON (LONGTEXT được MariaDB kiểm tra)MariaDB đọc cùng văn bản JSON. | |
| NUL bytes in text | được giữGiá trị được sao chép với cùng chuỗi thoát mà nguồn đã dùng. | |
| AUTO_INCREMENT | AUTO_INCREMENT với bộ đếm của bảngBộ đếm tiếp tục từ chỗ nguồn dừng lại, kể cả bộ đếm theo nhóm của MyISAM. | |
| MyISAM AUTO_INCREMENT on the second column of a key, in a table that isn't MyISAM in the dump | một chỉ mục trên cột và một bộ đếm cho cả bảngInnoDB chỉ đếm một cột khi nó đứng đầu một chỉ mục, và đếm một lần cho cả bảng. | myisam_group_autoincrement |
| ON UPDATE CURRENT_TIMESTAMP | được giữCùng mệnh đề, với phần giây lẻ của cột. | |
| generated columns | VIRTUAL hoặc STORED như trong nguồnCùng công thức, được chuyển đổi từng thành phần. | |
| generated columns with functions IntoSQL doesn't read | một cột thườngCông thức IntoSQL không đọc được để lại một cột thường và một dòng trong báo cáo. | generated_not_translated |
| INVISIBLE columns | cột INVISIBLEMySQL có cột ẩn từ 8.0.23, MariaDB từ 10.3. | |
| CHECK constraints | được giữCùng các ràng buộc kiểm tra, được chuyển đổi từng thành phần. | |
| CHECK constraints with functions IntoSQL doesn't read | không được tạoRàng buộc kiểm tra IntoSQL không đọc được sẽ bị bỏ và được báo cáo. | check_skipped |
| CHECK ... NOT ENFORCED | không được tạoMySQL 5.7 và MariaDB không thể giữ một ràng buộc kiểm tra mà không áp dụng nó, và các hàng có thể vi phạm nó. | check_not_enforced |
| expression defaults, and defaults on TEXT, BLOB, JSON and GEOMETRY | được giữMySQL nhận chúng từ 8.0.13; tập lệnh nạp trên 5.7, nên chúng bị bỏ và được báo cáo. MariaDB nhận chúng. | default_not_translated |
| functional indexes, KEY ((expr)) | không được tạoMySQL lập chỉ mục trên biểu thức từ 8.0.13 và MariaDB hoàn toàn không; một cột tính toán có chỉ mục làm được điều tương tự. | index_skipped |
| keys and indexes on a prefix, c(20) | được giữCùng chỉ mục. | |
| FULLTEXT indexes | được giữCùng chỉ mục; MATCH ... AGAINST hoạt động như trước. | |
| SPATIAL indexes | được giữCùng chỉ mục. | |
| foreign keys | được giữ, nạp với FOREIGN_KEY_CHECKS=0Cùng các khóa; các hàng được nạp như từ bản dump nguồn. | |
| GEOMETRY, POINT, POLYGON... | được giữ, kèm SRID của từng giá trịCác byte hình học gốc của máy chủ được sao chép, kể cả SRID. | |
| INET4, INET6, UUID (MariaDB) | được giữMySQL không có các kiểu này; văn bản MariaDB ghi cho chúng được giữ. | |
| BINARY, VARBINARY, BLOB | được giữByte vẫn là byte. | |
| PARTITION BY | một bảngCác hàng giữ nguyên; hãy phân vùng lại bảng nếu cần. | partitions_dropped |
| WITH SYSTEM VERSIONING (MariaDB) | WITH SYSTEM VERSIONING, bắt đầu từ các hàng hiện tạiBản dump chỉ chứa các hàng hiện tại; MySQL không có system versioning. | |
| Aria, ColumnStore, CONNECT, Spider, RocksDB (MariaDB) | được giữMySQL không có engine nào trong số này. Mọi engine khác được giữ. | |
| CREATE SEQUENCE (MariaDB) | CREATE SEQUENCE kèm giá trị tiếp theoMySQL không có sequence. | |
| views, triggers, procedures, functions and events | được liệt kê trong báo cáoChúng được liệt kê để bạn tạo lại; mã của chúng thường nêu definer và các tính năng của máy chủ. | not_converted_objects |
| NOT NULL columns with values that become NULL | bỏ NOT NULLCột có giá trị phải chuyển thành NULL không thể giữ NOT NULL, nếu không quá trình nạp sẽ dừng. | not_null_relaxed |
| text that isn't valid in its character set | byte lỗi thành ký tự thay thếTập lệnh là UTF-8; byte không hợp lệ sẽ làm dừng quá trình nạp. | invalid_utf8_replaced |
| text decoded twice (ñ) | sao chép nguyên trạngBản dump chứa đúng các ký tự này, nên chúng được sao chép; báo cáo chỉ ra chúng. | mojibake_suspected |
| dumps without CREATE TABLE | kiểu suy ra từ giá trịBản dump tạo với --no-create-info chỉ có các hàng, nên kiểu được suy ra từ giá trị. | no_schema |
| geometries in a dump without CREATE TABLE | GEOMETRYĐịnh dạng hình học của MySQL được nhận diện từ giá trị. | |
| SET NAMES utf8 from utf8mb4 tables | được chuyển đổi, kèm cảnh báomysqldump của MySQL 5.x mặc định ghi utf8 3 byte và thay mọi emoji bằng dấu chấm hỏi trước khi bất kỳ trình chuyển đổi nào thấy tệp. | dump_lost_four_byte_chars |
| dumps without SET NAMES whose text isn't UTF-8 | đọc dưới dạng Latin-1 (Windows-1252)latin1 của MySQL là Windows-1252, bảng mã thường gặp của những bản dump như vậy. | charset_guessed |
| sjis, cp932, gbk, big5 dumps | đọc dưới dạng UTF-8, kèm cảnh báoCác bảng mã này chưa được giải mã. | unsupported_charset |
| UNHEX('..'), CONVERT(b'..', UNSIGNED), CONVERT(".." USING x), ST_GeomFromText('..') in rows | được tính ra giá trịMột số công cụ dump ghi giá trị dưới dạng các lệnh gọi này; chúng được đọc thành giá trị mà chúng tạo ra. | |
| other expressions in rows | NULLTrình chuyển đổi không chạy cơ sở dữ liệu thì không tính được chúng. | expression_value |
| DEFAULT in VALUES | giá trị mặc định của cộtGiá trị mặc định dạng hằng được sao chép vào hàng. | default_keyword_filled |
| DEFAULT in VALUES without a literal default | NULLKhông có giá trị nào để sao chép. | default_keyword_null |
| REPLACE and INSERT IGNORE | hàng thườngBản dump có một hàng cho mỗi khóa, nên các hàng vẫn giống nhau. | replace_as_insert |
| types IntoSQL doesn't know | LONGBLOBBlob chứa được byte của mọi giá trị; hãy đổi kiểu sau khi nạp. | unknown_type |
| values that don't fit their column | NULLBản dump bị hỏng hoặc viết tay có thể chứa giá trị mà cột không chứa được; chúng trở thành NULL để phần còn lại được nạp. | invalid_value_null |
| unreadable geometries | NULLByte không phải dữ liệu hình học thì không lưu được dưới dạng hình học. | bad_geometry |
| TIMESTAMP | được giữ, nạp theo múi giờ bản dump nêuTập lệnh đặt cùng múi giờ mà bản dump đã dùng, nên mọi thời điểm đều giữ nguyên. | |
| VECTOR(n) (MariaDB 11.7+) | json với các số thực dưới dạng mảngTập lệnh nạp được trên MariaDB 10.11 trở lên, vốn không có kiểu vector; mảng JSON giữ mọi số thực, và VEC_FromText đọc lại được nó. | type_replaced |
Nạp tập lệnh vào MariaDB
Tập lệnh tạo bảng, sao chép các hàng, rồi thêm khóa, chỉ mục và khóa ngoại, nên nạp nhanh và dừng ở lỗi đầu tiên.
mariadb --default-character-set=utf8mb4 mydb < mysql.mariadb.sqlKhóa ngoại được tạo đúng như bản dump khai báo, với FOREIGN_KEY_CHECKS=0 trong khi nạp các hàng, như mysqldump.
Với bản dump lớn, hãy chạy client trên cùng máy với máy chủ, và tăng max_allowed_packet nếu một hàng rất lớn.
IntoSQL Pro nạp tệp thẳng vào MariaDB từ ứng dụng máy tính hoặc dòng lệnh, không cần tạo tập lệnh.
Tạo bản dump MySQL để có kết quả tốt nhất
Trình chuyển đổi đọc những gì bản dump chứa. Các tùy chọn sau giữ lại nhiều dữ liệu hơn trong đó:
- --default-character-set=utf8mb4 giữ emoji và các ký tự 4 byte khác, những ký tự mà bản dump utf8 làm mất trước khi trình chuyển đổi thấy.
- --hex-blob ghi cột nhị phân dưới dạng thập lục phân, không bị hỏng khi sao chép giữa các hệ thống.
- --routines --triggers --events thêm các đối tượng đó vào bản dump, để báo cáo có thể liệt kê chúng.
Những gì không được chuyển đổi
Khung nhìn, trình kích hoạt, thủ tục lưu trữ, hàm và sự kiện được viết bằng ngôn ngữ riêng của từng cơ sở dữ liệu. Chúng được liệt kê theo tên trong báo cáo, không bao giờ bị bỏ âm thầm, để bạn viết lại cho MariaDB.
Câu hỏi về MySQL sang MariaDB
Chưa có câu trả lời ở đây? Hãy viết cho chúng tôi từ trang liên hệ, sẽ có người trả lời. Trang liên hệ
Bản dump của tôi có bị tải lên không?
Không. Trình chuyển đổi chạy trong trình duyệt và đọc bản dump từ ổ đĩa theo từng phần, nên nó không bao giờ rời khỏi máy tính của bạn. Ứng dụng máy tính và dòng lệnh cũng chuyển đổi ngay trên máy tính của bạn.
Bản dump có thể lớn đến đâu?
Trình chuyển đổi không bao giờ giữ toàn bộ bản dump trong bộ nhớ: nó đọc tệp hai lần, theo từng đoạn, và ghi tập lệnh trong lúc đọc. Bản dump nhiều gigabyte vẫn chuyển đổi được trong trình duyệt, trong ứng dụng máy tính và bằng dòng lệnh.
Nó có đọc được bản dump MariaDB không?
Có. Bản dump từ mariadb-dump và từ MariaDB 10.3 đến 12 được chuyển đổi theo cùng cách, kể cả các cột INET6, INET4 và UUID của MariaDB.
Ngày 0000-00-00 sẽ ra sao?
MariaDB giữ chúng: tập lệnh đặt chế độ SQL chấp nhận ngày bằng 0 và ngày không hợp lệ trong lúc nạp, nên chúng được giữ nguyên.
Giá trị AUTO_INCREMENT có được giữ không?
Có. AUTO_INCREMENT giữ nguyên, và bộ đếm của bảng tiếp tục từ chỗ bản dump dừng lại.
TINYINT(1) có thành boolean không?
Nó vẫn là TINYINT(1), như trong nguồn, nên mọi giá trị giữ nguyên số của nó.
Còn thủ tục lưu trữ và trình kích hoạt thì sao?
Chúng được liệt kê theo tên trong báo cáo và không được chuyển đổi, để bạn kiểm tra từng cái với MariaDB trước khi tạo lại. ON UPDATE CURRENT_TIMESTAMP giữ nguyên.
Tập lệnh nạp được trên những phiên bản MariaDB nào?
MariaDB 10.11 trở lên. Mọi bản dump thử nghiệm, từ MySQL 5.7 đến 9 và từ MariaDB, đều nạp được trên 10.11 và 11.4.