Saltar al contenido
Inicio de IntoSQL

Pasa un volcado de MariaDB a un MariaDB más antiguo o más nuevo

Suelta un volcado de mariadb-dump, mysqldump, phpMyAdmin o Adminer, como .sql o .sql.gz, y descarga un script que carga en MariaDB 10.11 y posteriores. UUID, INET4, INET6, JSON y las secuencias quedan igual, VECTOR se vuelve un arreglo JSON de sus números para versiones anteriores a 11.7, y cada cambio aparece en el informe.

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

18 filas convertidas, sin correcciones, ninguna rechazada

Mostrar

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

  • customers8 filas
    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_ipinet6
  • orders10 filas
    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_refuuid not null
    invoiceint(11) not null
    detailsjson
    updated_attimestamp 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 SEQUENCE `invoice_numbers` START WITH 1000 MINVALUE 1 MAXVALUE 9223372036854775806 INCREMENT BY 1;
SELECT SETVAL(`invoice_numbers`, 2000, 0);
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` inet6 DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `uq_email` (`email`)
) ENGINE=InnoDB AUTO_INCREMENT=1001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_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` uuid NOT NULL,
  `invoice` int(11) NOT NULL DEFAULT (nextval(`invoice_numbers`)),
  `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_uca1400_ai_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

No hubo nada que corregir.

Tu archivo se convierte en esta computadora y nunca se sube.

Otros ejemplos:

Qué cambia entre el archivo y el script

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 para utf8mb4_0900_* (utf8mb4_bin para las binarias)

    MariaDB 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 MariaDB 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 (LONGTEXT que MariaDB comprueba)

    MariaDB 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 INVISIBLE

    MySQL tiene columnas invisibles desde 8.0.23, MariaDB desde 10.3.

  • CHECK constraints

    se conserva

    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

    se conserva

    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)

    se conserva

    MySQL no tiene esos tipos; se conserva el texto que MariaDB escribe para ellos.

  • 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)

    WITH SYSTEM VERSIONING, a partir de las filas actuales

    Un volcado solo contiene las filas actuales; MySQL no tiene versionado del sistema.

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

    se conserva

    MySQL no tiene ninguno de estos motores. Cualquier otro motor se conserva.

  • CREATE SEQUENCE (MariaDB)

    CREATE SEQUENCE con su siguiente valor

    MySQL no tiene secuencias.

  • 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

    El script carga en MariaDB 10.11 y posteriores, que no tienen un tipo vector; un arreglo JSON conserva cada número, y VEC_FromText lo vuelve a leer.

    Línea del informe: type_replaced

En el archivoEn el scriptLínea del informe
utf8mb4_0900_* and utf8mb4_uca1400_* collationsutf8mb4_unicode_520_ci para utf8mb4_0900_* (utf8mb4_bin para las binarias)MariaDB 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 MariaDB 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.
JSONJSON (LONGTEXT que MariaDB comprueba)MariaDB 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 INVISIBLEMySQL tiene columnas invisibles desde 8.0.23, MariaDB desde 10.3.
CHECK constraintsse conservaLos 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 GEOMETRYse conservaMySQL 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)se conservaMySQL no tiene esos tipos; se conserva el texto que MariaDB escribe para ellos.
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)WITH SYSTEM VERSIONING, a partir de las filas actualesUn volcado solo contiene las filas actuales; MySQL no tiene versionado del sistema.
Aria, ColumnStore, CONNECT, Spider, RocksDB (MariaDB)se conservaMySQL no tiene ninguno de estos motores. Cualquier otro motor se conserva.
CREATE SEQUENCE (MariaDB)CREATE SEQUENCE con su siguiente valorMySQL no tiene secuencias.
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 arregloEl script carga en MariaDB 10.11 y posteriores, que no tienen un tipo vector; un arreglo JSON conserva cada número, y VEC_FromText lo vuelve a leer.type_replaced

Carga el script en MariaDB

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.

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

Las claves foráneas se crean como las declara el volcado, con FOREIGN_KEY_CHECKS=0 mientras cargan las filas, como hace mysqldump.

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 MariaDB 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, disparadores, procedimientos, funciones y otros objetos escritos en el propio lenguaje de MariaDB aparecen en el informe por nombre, nunca se descartan en silencio, para que revises cada uno contra la versión de MariaDB en la que cargas antes de recrearlo.

Preguntas sobre pasar MariaDB entre versiones

¿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, INET4, INET6 y JSON se quedan tal cual. VECTOR se vuelve un arreglo JSON de sus números, porque MariaDB antes de 11.7 no tiene un tipo vector; VEC_FromText lo vuelve a leer.

¿Se conservan los valores AUTO_INCREMENT y las secuencias?

Sí. AUTO_INCREMENT y las secuencias se quedan tal cual, y los valores predeterminados que toman de una secuencia siguen tomando de ella.

¿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 el MariaDB en el que cargas antes de volver a crearlo.

¿En qué versiones de MariaDB carga el script?

MariaDB 10.11 y posteriores, sin importar qué versión escribió el volcado. Cada volcado de prueba carga en 10.11 y 11.4.