Convierte MariaDB a MySQL
Suelta un volcado de mariadb-dump, mysqldump, phpMyAdmin o Adminer, en .sql o .sql.gz, y descarga un script de MySQL con las mismas tablas, claves, índices y datos. Cada valor que MySQL no puede guardar tal cual, y cada objeto que no admite, aparece en el informe.
18 filas convertidas, 4 correcciones, ninguna rechazada
Tablas en shop_2024_mariadb.sqlVolcado de MariaDB 11.8.9-MariaDB-ubu2404 · escrito por mariadb-dump · utf8mb4
customers8 filas2
8 columnas 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 filas2
12 columnas 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;
Correcciones
- customers usa la intercalación utf8mb4_uca1400_ai_ci, que MySQL no tiene, así que usa utf8mb4_unicode_520_ci; el texto puede ordenarse y compararse un poco distinto.
- "last_ip" de customers es inet6, que MySQL no tiene, así que es varchar(39) con los mismos valores.
- orders usa la intercalación utf8mb4_uca1400_ai_ci, que MySQL no tiene, así que usa utf8mb4_unicode_520_ci; el texto puede ordenarse y compararse un poco distinto.
- "order_ref" de orders es uuid, que MySQL no tiene, así que es char(36) con los mismos valores.
Para revisar
- 1 secuencia no se crea; MySQL no tiene secuencias. Guarda el siguiente valor en una tabla si tu aplicación lo necesita.
- El valor predeterminado de "invoice" en orders no se puede escribir para MySQL (a sequence), así que la columna no tiene valor predeterminado. Agrega el valor predeterminado a mano si las filas nuevas lo necesitan.
Tu archivo se convierte en esta computadora y nunca se sube.
Otros ejemplos:
Qué cambia de MariaDB a MySQL
Cada fila es una regla que aplica el convertidor, con la línea que escribe en el informe cuando la regla cambia algo en tus datos.
utf8mb4_0900_* and utf8mb4_uca1400_* collations
utf8mb4_unicode_520_ci (utf8mb4_bin para las binarias)
MySQL no conoce las intercalaciones más nuevas, el error que impide que la mayoría de los volcados de MySQL 8 carguen en otro lado. unicode_520 es la que sigue más de cerca las mismas reglas de Unicode.
Línea del informe: collation_replaced
zero, partial or impossible dates (0000-00-00, 2024-02-30)
se conserva
El script carga con ALLOW_INVALID_DATES y sin NO_ZERO_DATE, así que MySQL conserva los mismos valores que tenía el origen.
TIME
TIME, con duraciones incluidas
El mismo tipo, con el mismo rango.
TINYINT(1), BOOL
TINYINT(1)
El mismo tipo con los mismos valores.
UNSIGNED and ZEROFILL
se conserva
Los mismos tipos.
ENUM and SET, the '' error value included
se conserva
Los mismos tipos; el script carga sin modo estricto, así que el valor de error carga tal cual.
JSON
JSON
MySQL lee el mismo texto JSON.
NUL bytes in text
se conserva
El valor se copia con el mismo escape que usaba el origen.
AUTO_INCREMENT
AUTO_INCREMENT con el contador de la tabla
El contador sigue donde lo dejó el origen, incluidos los contadores por grupo de MyISAM.
MyISAM AUTO_INCREMENT on the second column of a key, in a table that isn't MyISAM in the dump
un índice sobre la columna y un contador para la tabla
InnoDB cuenta una columna solo cuando encabeza un índice, y una sola vez para toda la tabla.
Línea del informe: myisam_group_autoincrement
ON UPDATE CURRENT_TIMESTAMP
se conserva
La misma cláusula, con las fracciones de segundo de la columna.
generated columns
VIRTUAL o STORED como en el origen
La misma fórmula, traducida término por término.
generated columns with functions IntoSQL doesn't read
una columna simple
Una fórmula que IntoSQL no puede leer deja una columna simple y una línea en el informe.
Línea del informe: generated_not_translated
INVISIBLE columns
columnas normales
MySQL tiene columnas invisibles desde 8.0.23, MariaDB desde 10.3.
Línea del informe: invisible_column
CHECK constraints
se conservan (MySQL 5.7 los analiza y los ignora)
Los mismos CHECK, traducidos término por término.
CHECK constraints with functions IntoSQL doesn't read
no se crea
Un CHECK que IntoSQL no puede leer se deja fuera y aparece en el informe.
Línea del informe: check_skipped
CHECK ... NOT ENFORCED
no se crea
MySQL 5.7 y MariaDB no pueden conservar un CHECK sin aplicarlo, y las filas pueden no cumplirlo.
Línea del informe: check_not_enforced
expression defaults, and defaults on TEXT, BLOB, JSON and GEOMETRY
sin valor predeterminado
MySQL los acepta desde 8.0.13; el script carga en 5.7, así que se dejan fuera y aparecen en el informe. MariaDB los acepta.
Línea del informe: default_not_translated
functional indexes, KEY ((expr))
no se crea
MySQL indexa expresiones desde 8.0.13 y MariaDB no lo hace; una columna generada con un índice logra lo mismo.
Línea del informe: index_skipped
keys and indexes on a prefix, c(20)
se conserva
El mismo índice.
FULLTEXT indexes
se conserva
El mismo índice; MATCH ... AGAINST funciona como antes.
SPATIAL indexes
se conserva
El mismo índice.
foreign keys
se conservan, cargadas con FOREIGN_KEY_CHECKS=0
Las mismas claves; las filas cargan como lo hacían desde el volcado de origen.
GEOMETRY, POINT, POLYGON...
se conserva, con el SRID de cada valor
Se copian los bytes de geometría propios del servidor, SRID incluido.
INET4, INET6, UUID (MariaDB)
varchar(15), varchar(39), char(36)
MySQL no tiene esos tipos; se conserva el texto que MariaDB escribe para ellos.
Línea del informe: type_replaced
BINARY, VARBINARY, BLOB
se conserva
Los bytes siguen siendo bytes.
PARTITION BY
una sola tabla
Las filas son las mismas; vuelve a particionar la tabla si lo necesita.
Línea del informe: partitions_dropped
WITH SYSTEM VERSIONING (MariaDB)
una tabla con las filas actuales
Un volcado solo contiene las filas actuales; MySQL no tiene versionado del sistema.
Línea del informe: system_versioning_dropped
Aria, ColumnStore, CONNECT, Spider, RocksDB (MariaDB)
InnoDB
MySQL no tiene ninguno de estos motores. Cualquier otro motor se conserva.
Línea del informe: engine_dropped
CREATE SEQUENCE (MariaDB)
no se crea
MySQL no tiene secuencias.
Línea del informe: sequence_not_converted
views, triggers, procedures, functions and events
listados en el informe
Se listan para que los vuelvas a crear; su código suele nombrar a su definidor y funciones del servidor.
Línea del informe: not_converted_objects
NOT NULL columns with values that become NULL
sin NOT NULL
Una columna cuyos valores tuvieron que volverse NULL no puede conservar NOT NULL, o la carga se detendría.
Línea del informe: not_null_relaxed
text that isn't valid in its character set
los bytes incorrectos como carácter de reemplazo
El script es UTF-8; los bytes que no lo son detendrían la carga.
Línea del informe: invalid_utf8_replaced
text decoded twice (ñ)
se copia tal cual
El volcado contiene exactamente estos caracteres, así que se copian; el informe los señala.
Línea del informe: mojibake_suspected
dumps without CREATE TABLE
tipos leídos de los valores
Un volcado hecho con --no-create-info solo tiene filas, así que los tipos salen de los valores.
Línea del informe: no_schema
geometries in a dump without CREATE TABLE
GEOMETRY
El formato de geometría de MySQL se reconoce por los valores.
SET NAMES utf8 from utf8mb4 tables
se convierte, con una advertencia
El mysqldump de MySQL 5.x escribe utf8 de 3 bytes por defecto y reemplaza cada emoji por un signo de interrogación antes de que cualquier convertidor vea el archivo.
Línea del informe: dump_lost_four_byte_chars
dumps without SET NAMES whose text isn't UTF-8
se lee como Latin-1 (Windows-1252)
El latin1 de MySQL es Windows-1252, la codificación habitual de esos volcados.
Línea del informe: charset_guessed
sjis, cp932, gbk, big5 dumps
se lee como UTF-8, con una advertencia
Estas codificaciones todavía no se decodifican.
Línea del informe: unsupported_charset
UNHEX('..'), CONVERT(b'..', UNSIGNED), CONVERT(".." USING x), ST_GeomFromText('..') in rows
se evalúan
Algunas herramientas de volcado escriben los valores como estas llamadas; se leen como los valores que producen.
other expressions in rows
NULL
Un convertidor que no ejecuta una base de datos no puede evaluarlas.
Línea del informe: expression_value
DEFAULT in VALUES
el valor predeterminado de la columna
Un valor predeterminado literal se copia en la fila.
Línea del informe: default_keyword_filled
DEFAULT in VALUES without a literal default
NULL
No hay ningún valor que copiar.
Línea del informe: default_keyword_null
REPLACE and INSERT IGNORE
filas simples
Un volcado tiene una fila por clave, así que las filas son las mismas.
Línea del informe: replace_as_insert
types IntoSQL doesn't know
LONGBLOB
Un blob admite los bytes de cualquier valor; cambia el tipo después de cargar.
Línea del informe: unknown_type
values that don't fit their column
NULL
Un volcado dañado o escrito a mano puede contener valores que su columna no admite; se vuelven NULL para que se cargue el resto.
Línea del informe: invalid_value_null
unreadable geometries
NULL
Los bytes que no son una geometría no se pueden guardar como una.
Línea del informe: bad_geometry
TIMESTAMP
se conserva, cargado en la zona horaria que indica el volcado
El script fija la misma zona horaria que fijó el volcado, así que cada instante es el mismo.
VECTOR(n) (MariaDB 11.7+)
json con los números de punto flotante como arreglo
MySQL 5.7 y 8.0 no tienen un tipo vector; un arreglo JSON conserva cada número en todas las versiones.
Línea del informe: type_replaced
| En MariaDB | En MySQL | Línea del informe |
|---|---|---|
| utf8mb4_0900_* and utf8mb4_uca1400_* collations | utf8mb4_unicode_520_ci (utf8mb4_bin para las binarias)MySQL no conoce las intercalaciones más nuevas, el error que impide que la mayoría de los volcados de MySQL 8 carguen en otro lado. unicode_520 es la que sigue más de cerca las mismas reglas de Unicode. | collation_replaced |
| zero, partial or impossible dates (0000-00-00, 2024-02-30) | se conservaEl script carga con ALLOW_INVALID_DATES y sin NO_ZERO_DATE, así que MySQL conserva los mismos valores que tenía el origen. | |
| TIME | TIME, con duraciones incluidasEl mismo tipo, con el mismo rango. | |
| TINYINT(1), BOOL | TINYINT(1)El mismo tipo con los mismos valores. | |
| UNSIGNED and ZEROFILL | se conservaLos mismos tipos. | |
| ENUM and SET, the '' error value included | se conservaLos mismos tipos; el script carga sin modo estricto, así que el valor de error carga tal cual. | |
| JSON | JSONMySQL lee el mismo texto JSON. | |
| NUL bytes in text | se conservaEl valor se copia con el mismo escape que usaba el origen. | |
| AUTO_INCREMENT | AUTO_INCREMENT con el contador de la tablaEl contador sigue donde lo dejó el origen, incluidos los contadores por grupo de MyISAM. | |
| MyISAM AUTO_INCREMENT on the second column of a key, in a table that isn't MyISAM in the dump | un índice sobre la columna y un contador para la tablaInnoDB cuenta una columna solo cuando encabeza un índice, y una sola vez para toda la tabla. | myisam_group_autoincrement |
| ON UPDATE CURRENT_TIMESTAMP | se conservaLa misma cláusula, con las fracciones de segundo de la columna. | |
| generated columns | VIRTUAL o STORED como en el origenLa misma fórmula, traducida término por término. | |
| generated columns with functions IntoSQL doesn't read | una columna simpleUna fórmula que IntoSQL no puede leer deja una columna simple y una línea en el informe. | generated_not_translated |
| INVISIBLE columns | columnas normalesMySQL tiene columnas invisibles desde 8.0.23, MariaDB desde 10.3. | invisible_column |
| CHECK constraints | se conservan (MySQL 5.7 los analiza y los ignora)Los mismos CHECK, traducidos término por término. | |
| CHECK constraints with functions IntoSQL doesn't read | no se creaUn CHECK que IntoSQL no puede leer se deja fuera y aparece en el informe. | check_skipped |
| CHECK ... NOT ENFORCED | no se creaMySQL 5.7 y MariaDB no pueden conservar un CHECK sin aplicarlo, y las filas pueden no cumplirlo. | check_not_enforced |
| expression defaults, and defaults on TEXT, BLOB, JSON and GEOMETRY | sin valor predeterminadoMySQL los acepta desde 8.0.13; el script carga en 5.7, así que se dejan fuera y aparecen en el informe. MariaDB los acepta. | default_not_translated |
| functional indexes, KEY ((expr)) | no se creaMySQL indexa expresiones desde 8.0.13 y MariaDB no lo hace; una columna generada con un índice logra lo mismo. | index_skipped |
| keys and indexes on a prefix, c(20) | se conservaEl mismo índice. | |
| FULLTEXT indexes | se conservaEl mismo índice; MATCH ... AGAINST funciona como antes. | |
| SPATIAL indexes | se conservaEl mismo índice. | |
| foreign keys | se conservan, cargadas con FOREIGN_KEY_CHECKS=0Las mismas claves; las filas cargan como lo hacían desde el volcado de origen. | |
| GEOMETRY, POINT, POLYGON... | se conserva, con el SRID de cada valorSe copian los bytes de geometría propios del servidor, SRID incluido. | |
| INET4, INET6, UUID (MariaDB) | varchar(15), varchar(39), char(36)MySQL no tiene esos tipos; se conserva el texto que MariaDB escribe para ellos. | type_replaced |
| BINARY, VARBINARY, BLOB | se conservaLos bytes siguen siendo bytes. | |
| PARTITION BY | una sola tablaLas filas son las mismas; vuelve a particionar la tabla si lo necesita. | partitions_dropped |
| WITH SYSTEM VERSIONING (MariaDB) | una tabla con las filas actualesUn volcado solo contiene las filas actuales; MySQL no tiene versionado del sistema. | system_versioning_dropped |
| Aria, ColumnStore, CONNECT, Spider, RocksDB (MariaDB) | InnoDBMySQL no tiene ninguno de estos motores. Cualquier otro motor se conserva. | engine_dropped |
| CREATE SEQUENCE (MariaDB) | no se creaMySQL no tiene secuencias. | sequence_not_converted |
| views, triggers, procedures, functions and events | listados en el informeSe listan para que los vuelvas a crear; su código suele nombrar a su definidor y funciones del servidor. | not_converted_objects |
| NOT NULL columns with values that become NULL | sin NOT NULLUna columna cuyos valores tuvieron que volverse NULL no puede conservar NOT NULL, o la carga se detendría. | not_null_relaxed |
| text that isn't valid in its character set | los bytes incorrectos como carácter de reemplazoEl script es UTF-8; los bytes que no lo son detendrían la carga. | invalid_utf8_replaced |
| text decoded twice (ñ) | se copia tal cualEl volcado contiene exactamente estos caracteres, así que se copian; el informe los señala. | mojibake_suspected |
| dumps without CREATE TABLE | tipos leídos de los valoresUn volcado hecho con --no-create-info solo tiene filas, así que los tipos salen de los valores. | no_schema |
| geometries in a dump without CREATE TABLE | GEOMETRYEl formato de geometría de MySQL se reconoce por los valores. | |
| SET NAMES utf8 from utf8mb4 tables | se convierte, con una advertenciaEl mysqldump de MySQL 5.x escribe utf8 de 3 bytes por defecto y reemplaza cada emoji por un signo de interrogación antes de que cualquier convertidor vea el archivo. | dump_lost_four_byte_chars |
| dumps without SET NAMES whose text isn't UTF-8 | se lee como Latin-1 (Windows-1252)El latin1 de MySQL es Windows-1252, la codificación habitual de esos volcados. | charset_guessed |
| sjis, cp932, gbk, big5 dumps | se lee como UTF-8, con una advertenciaEstas codificaciones todavía no se decodifican. | unsupported_charset |
| UNHEX('..'), CONVERT(b'..', UNSIGNED), CONVERT(".." USING x), ST_GeomFromText('..') in rows | se evalúanAlgunas herramientas de volcado escriben los valores como estas llamadas; se leen como los valores que producen. | |
| other expressions in rows | NULLUn convertidor que no ejecuta una base de datos no puede evaluarlas. | expression_value |
| DEFAULT in VALUES | el valor predeterminado de la columnaUn valor predeterminado literal se copia en la fila. | default_keyword_filled |
| DEFAULT in VALUES without a literal default | NULLNo hay ningún valor que copiar. | default_keyword_null |
| REPLACE and INSERT IGNORE | filas simplesUn volcado tiene una fila por clave, así que las filas son las mismas. | replace_as_insert |
| types IntoSQL doesn't know | LONGBLOBUn blob admite los bytes de cualquier valor; cambia el tipo después de cargar. | unknown_type |
| values that don't fit their column | NULLUn volcado dañado o escrito a mano puede contener valores que su columna no admite; se vuelven NULL para que se cargue el resto. | invalid_value_null |
| unreadable geometries | NULLLos bytes que no son una geometría no se pueden guardar como una. | bad_geometry |
| TIMESTAMP | se conserva, cargado en la zona horaria que indica el volcadoEl script fija la misma zona horaria que fijó el volcado, así que cada instante es el mismo. | |
| VECTOR(n) (MariaDB 11.7+) | json con los números de punto flotante como arregloMySQL 5.7 y 8.0 no tienen un tipo vector; un arreglo JSON conserva cada número en todas las versiones. | type_replaced |
Carga el script en MySQL
El script crea las tablas, copia las filas y luego agrega claves, índices y claves foráneas, así que carga rápido y se detiene en el primer error.
mysql --default-character-set=utf8mb4 mydb < mariadb.mysql.sqlLas claves foráneas se crean como las declara el volcado, con FOREIGN_KEY_CHECKS=0 mientras cargan las filas, así que una fila que apunta a una fila que no existe no detiene la carga.
Para un volcado grande, ejecuta el cliente en la misma máquina que el servidor, y sube max_allowed_packet si una sola fila es muy grande.
IntoSQL Pro carga el archivo directo en MySQL desde la app de escritorio o la línea de comandos, sin escribir un script.
Haz el volcado de MariaDB para el mejor resultado
El convertidor lee lo que contiene el volcado. Estas opciones conservan más de tus datos en él:
- --default-character-set=utf8mb4 conserva los emoji y otros caracteres de 4 bytes, que un volcado utf8mb3 pierde antes de que el convertidor lo vea.
- --hex-blob escribe las columnas binarias y los valores VECTOR en hexadecimal, que sobrevive a la copia entre sistemas.
- --routines --triggers --events agregan esos objetos al volcado, para que el informe pueda listarlos.
Qué no se convierte
Las vistas, los disparadores, los procedimientos almacenados, las funciones y los eventos se escriben en el lenguaje propio de MariaDB. Aparecen en el informe por nombre, nunca se descartan en silencio, para que puedas reescribirlos para MySQL.
Preguntas sobre MariaDB a MySQL
¿No encuentras la respuesta? Escríbenos desde la página de contacto y te responde una persona. Página de contacto
¿Se sube mi volcado?
No. El convertidor se ejecuta en tu navegador y lee el volcado de tu disco por partes, así que nunca sale de tu computadora. La app de escritorio y la línea de comandos también convierten en tu computadora.
¿Qué tan grande puede ser el volcado?
El convertidor nunca tiene todo el volcado en memoria: lee el archivo dos veces, por rangos, y escribe el script sobre la marcha. Los volcados de varios gigabytes se convierten en el navegador, en la app de escritorio y con la línea de comandos.
¿De qué versiones de MariaDB puede venir el volcado?
Volcados de mariadb-dump y mysqldump en MariaDB 10.3 a 12, con un INSERT por tabla o uno por fila. Cada volcado de prueba viene de MariaDB 10.11, 11.4 y 11.8 y se compara con su origen celda por celda.
¿Se conservan las columnas UUID, INET6, JSON y VECTOR?
UUID se vuelve char(36), INET4 e INET6 varchar, JSON json y VECTOR un arreglo json de sus números, porque MySQL 5.7 y 8.0 no tienen esos tipos.
¿Se conservan los valores AUTO_INCREMENT y las secuencias?
AUTO_INCREMENT se queda tal cual y sigue donde lo dejó el volcado. MySQL no tiene secuencias, así que el informe las indica, junto con los valores predeterminados que toman de ellas.
¿Qué pasa con los procedimientos almacenados y los disparadores?
Aparecen en el informe por nombre y no se convierten, para que puedas revisar cada uno contra MySQL antes de volver a crearlo.
¿En qué versiones de MySQL carga el script?
MySQL 5.7 y posteriores. Cada volcado de prueba carga en 5.7 y 9, y se detiene en el primer error si algo sale mal.