Saltar al contenido
Inicio de IntoSQL

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.

Tu archivo
sqlshop_2024_mariadb.sqlArchivo de ejemplo, 6,6 kB
Tu base de datos

18 filas convertidas, 4 correcciones, ninguna rechazada

Mostrar

Tablas en shop_2024_mariadb.sqlVolcado de MariaDB 11.8.9-MariaDB-ubu2404 · escrito por mariadb-dump · utf8mb4

  • customers8 filas2
    8 columnas
    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 filas2
    12 columnas
    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;

Correcciones

  1. 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.
  2. "last_ip" de customers es inet6, que MySQL no tiene, así que es varchar(39) con los mismos valores.
  3. 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.
  4. "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 MariaDBEn MySQLLínea del informe
utf8mb4_0900_* and utf8mb4_uca1400_* collationsutf8mb4_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.
TIMETIME, con duraciones incluidasEl mismo tipo, con el mismo rango.
TINYINT(1), BOOLTINYINT(1)El mismo tipo con los mismos valores.
UNSIGNED and ZEROFILLse conservaLos mismos tipos.
ENUM and SET, the '' error value includedse conservaLos mismos tipos; el script carga sin modo estricto, así que el valor de error carga tal cual.
JSONJSONMySQL lee el mismo texto JSON.
NUL bytes in textse conservaEl valor se copia con el mismo escape que usaba el origen.
AUTO_INCREMENTAUTO_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 dumpun í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_TIMESTAMPse conservaLa misma cláusula, con las fracciones de segundo de la columna.
generated columnsVIRTUAL o STORED como en el origenLa misma fórmula, traducida término por término.
generated columns with functions IntoSQL doesn't readuna columna simpleUna fórmula que IntoSQL no puede leer deja una columna simple y una línea en el informe.generated_not_translated
INVISIBLE columnscolumnas normalesMySQL tiene columnas invisibles desde 8.0.23, MariaDB desde 10.3.invisible_column
CHECK constraintsse 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 readno se creaUn CHECK que IntoSQL no puede leer se deja fuera y aparece en el informe.check_skipped
CHECK ... NOT ENFORCEDno 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 GEOMETRYsin 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 indexesse conservaEl mismo índice; MATCH ... AGAINST funciona como antes.
SPATIAL indexesse conservaEl mismo índice.
foreign keysse 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, BLOBse conservaLos bytes siguen siendo bytes.
PARTITION BYuna 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 eventslistados 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 NULLsin 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 setlos 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 TABLEtipos 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 TABLEGEOMETRYEl formato de geometría de MySQL se reconoce por los valores.
SET NAMES utf8 from utf8mb4 tablesse 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-8se 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 dumpsse 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 rowsse evalúanAlgunas herramientas de volcado escriben los valores como estas llamadas; se leen como los valores que producen.
other expressions in rowsNULLUn convertidor que no ejecuta una base de datos no puede evaluarlas.expression_value
DEFAULT in VALUESel valor predeterminado de la columnaUn valor predeterminado literal se copia en la fila.default_keyword_filled
DEFAULT in VALUES without a literal defaultNULLNo hay ningún valor que copiar.default_keyword_null
REPLACE and INSERT IGNOREfilas simplesUn volcado tiene una fila por clave, así que las filas son las mismas.replace_as_insert
types IntoSQL doesn't knowLONGBLOBUn blob admite los bytes de cualquier valor; cambia el tipo después de cargar.unknown_type
values that don't fit their columnNULLUn 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 geometriesNULLLos bytes que no son una geometría no se pueden guardar como una.bad_geometry
TIMESTAMPse 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.sql

Las 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.