Pular para o conteúdo
Início do IntoSQL

Leve um dump do MySQL para um MySQL mais antigo ou mais novo

Solte um dump do mysqldump, mysqlpump, phpMyAdmin ou Adminer, do MySQL 5.5 ao 9, como .sql ou .sql.gz, e baixe um script que carrega no MySQL 5.7 ou posterior. Collations que só o MySQL 8 ou posterior conhece, como utf8mb4_0900_ai_ci, viram utf8mb4_unicode_520_ci, e cada mudança é listada no relatório.

Seu arquivo
sqlshop_2024.sqlArquivo de exemplo, 5,1 kB
Seu banco de dados

18 linhas convertidas, 2 correções, nenhuma rejeitada

Mostrar

Tabelas em shop_2024.sqlDump do MySQL 8.0.46 · gerado por mysqldump · utf8mb4

  • customers8 linhas1
    7 colunas
    idint 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
  • orders10 linhas1
    9 colunas
    idint unsigned not null
    customer_idint unsigned not null
    statusenum('pending','paid','shipped','cancelled') not null
    totaldecimal(10,2) not null
    itemssmallint unsigned not null
    ordered_atdatetime not null
    shipped_atdatetime
    notevarchar(255)
    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 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;

Correções

  1. customers usa a collation utf8mb4_0900_ai_ci, que o MySQL não tem, então usa utf8mb4_unicode_520_ci; o texto pode ser ordenado e comparado de forma um pouco diferente.
  2. orders usa a collation utf8mb4_0900_ai_ci, que o MySQL não tem, então usa utf8mb4_unicode_520_ci; o texto pode ser ordenado e comparado de forma um pouco diferente.

Seu arquivo é convertido neste computador e nunca é enviado.

Outros exemplos:

O que muda entre o arquivo e o script

Cada linha é uma regra que o conversor aplica, com a linha do relatório que ele escreve quando a regra muda algo nos seus dados.

  • utf8mb4_0900_* and utf8mb4_uca1400_* collations

    utf8mb4_unicode_520_ci (utf8mb4_bin para as binárias)

    O MySQL não conhece as collations mais novas, o erro que impede a maioria dos dumps do MySQL 8 de carregar em outro lugar. unicode_520 é a que segue mais de perto as mesmas regras Unicode.

    Linha do relatório: collation_replaced

  • zero, partial or impossible dates (0000-00-00, 2024-02-30)

    mantido

    O script carrega com ALLOW_INVALID_DATES e sem NO_ZERO_DATE, então o MySQL mantém os mesmos valores que a origem tinha.

  • TIME

    TIME, incluindo durações

    O mesmo tipo, com o mesmo intervalo.

  • TINYINT(1), BOOL

    TINYINT(1)

    O mesmo tipo com os mesmos valores.

  • UNSIGNED and ZEROFILL

    mantido

    Os mesmos tipos.

  • ENUM and SET, the '' error value included

    mantido

    Os mesmos tipos; o script carrega sem o modo estrito, então o valor de erro carrega como está.

  • JSON

    JSON

    O MySQL lê o mesmo texto JSON.

  • NUL bytes in text

    mantido

    O valor é copiado com o mesmo escape que a origem usava.

  • AUTO_INCREMENT

    AUTO_INCREMENT com o contador da tabela

    O contador continua de onde a origem parou, incluindo os contadores por grupo do MyISAM.

  • MyISAM AUTO_INCREMENT on the second column of a key, in a table that isn't MyISAM in the dump

    um índice na coluna e um contador para a tabela

    O InnoDB só conta uma coluna quando ela começa um índice, e uma vez para a tabela toda.

    Linha do relatório: myisam_group_autoincrement

  • ON UPDATE CURRENT_TIMESTAMP

    mantido

    A mesma cláusula, com as frações de segundo da coluna.

  • generated columns

    VIRTUAL ou STORED como na origem

    A mesma fórmula, traduzida termo a termo.

  • generated columns with functions IntoSQL doesn't read

    uma coluna simples

    Uma fórmula que o IntoSQL não consegue ler deixa uma coluna simples e uma linha no relatório.

    Linha do relatório: generated_not_translated

  • INVISIBLE columns

    colunas comuns

    O MySQL tem colunas invisíveis a partir do 8.0.23, o MariaDB a partir do 10.3.

    Linha do relatório: invisible_column

  • CHECK constraints

    mantidos (o MySQL 5.7 os analisa e ignora)

    Os mesmos CHECKs, traduzidos termo a termo.

  • CHECK constraints with functions IntoSQL doesn't read

    não criado

    Um CHECK que o IntoSQL não consegue ler fica de fora e é informado.

    Linha do relatório: check_skipped

  • CHECK ... NOT ENFORCED

    não criado

    O MySQL 5.7 e o MariaDB não conseguem manter um CHECK sem aplicá-lo, e as linhas podem violá-lo.

    Linha do relatório: check_not_enforced

  • expression defaults, and defaults on TEXT, BLOB, JSON and GEOMETRY

    sem valor padrão

    O MySQL os aceita a partir do 8.0.13; o script carrega no 5.7, então eles ficam de fora e são informados. O MariaDB os aceita.

    Linha do relatório: default_not_translated

  • functional indexes, KEY ((expr))

    não criado

    O MySQL indexa expressões a partir do 8.0.13 e o MariaDB nunca; uma coluna gerada com um índice faz o mesmo.

    Linha do relatório: index_skipped

  • keys and indexes on a prefix, c(20)

    mantido

    O mesmo índice.

  • FULLTEXT indexes

    mantido

    O mesmo índice; MATCH ... AGAINST funciona como antes.

  • SPATIAL indexes

    mantido

    O mesmo índice.

  • foreign keys

    mantidas, carregadas com FOREIGN_KEY_CHECKS=0

    As mesmas chaves; as linhas carregam como carregavam a partir do dump de origem.

  • GEOMETRY, POINT, POLYGON...

    mantido, com o SRID de cada valor

    Os bytes de geometria do próprio servidor são copiados, incluindo o SRID.

  • INET4, INET6, UUID (MariaDB)

    varchar(15), varchar(39), char(36)

    O MySQL não tem esses tipos; o texto que o MariaDB escreve para eles é mantido.

    Linha do relatório: type_replaced

  • BINARY, VARBINARY, BLOB

    mantido

    Bytes continuam sendo bytes.

  • PARTITION BY

    uma tabela

    As linhas são as mesmas; particione a tabela de novo se precisar.

    Linha do relatório: partitions_dropped

  • WITH SYSTEM VERSIONING (MariaDB)

    uma tabela com as linhas atuais

    Um dump contém só as linhas atuais; o MySQL não tem versionamento de sistema.

    Linha do relatório: system_versioning_dropped

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

    InnoDB

    O MySQL não tem nenhum desses mecanismos. Todos os outros mecanismos são mantidos.

    Linha do relatório: engine_dropped

  • CREATE SEQUENCE (MariaDB)

    não criado

    O MySQL não tem sequências.

    Linha do relatório: sequence_not_converted

  • views, triggers, procedures, functions and events

    listados no relatório

    Eles são listados para você recriá-los; o código deles costuma citar o definer e recursos do servidor.

    Linha do relatório: not_converted_objects

  • NOT NULL columns with values that become NULL

    NOT NULL removido

    Uma coluna cujos valores tiveram de virar NULL não pode manter NOT NULL, senão a carga pararia.

    Linha do relatório: not_null_relaxed

  • text that isn't valid in its character set

    os bytes inválidos como o caractere de substituição

    O script é UTF-8; bytes que não são parariam a carga.

    Linha do relatório: invalid_utf8_replaced

  • text decoded twice (ñ)

    copiado como está

    O dump contém exatamente esses caracteres, então eles são copiados; o relatório os aponta.

    Linha do relatório: mojibake_suspected

  • dumps without CREATE TABLE

    tipos deduzidos dos valores

    Um dump feito com --no-create-info só tem linhas, então os tipos vêm dos valores.

    Linha do relatório: no_schema

  • geometries in a dump without CREATE TABLE

    GEOMETRY

    O formato de geometria do MySQL é reconhecido pelos valores.

  • SET NAMES utf8 from utf8mb4 tables

    convertido, com um aviso

    O mysqldump do MySQL 5.x escreve utf8 de 3 bytes por padrão e troca cada emoji por um ponto de interrogação antes que qualquer conversor veja o arquivo.

    Linha do relatório: dump_lost_four_byte_chars

  • dumps without SET NAMES whose text isn't UTF-8

    lido como Latin-1 (Windows-1252)

    O latin1 do MySQL é o Windows-1252, a codificação comum desses dumps.

    Linha do relatório: charset_guessed

  • sjis, cp932, gbk, big5 dumps

    lido como UTF-8, com um aviso

    Essas codificações ainda não são decodificadas.

    Linha do relatório: unsupported_charset

  • UNHEX('..'), CONVERT(b'..', UNSIGNED), CONVERT(".." USING x), ST_GeomFromText('..') in rows

    avaliadas

    Algumas ferramentas de dump escrevem valores como essas chamadas; elas são lidas como os valores que produzem.

  • other expressions in rows

    NULL

    Um conversor que não executa um banco de dados não consegue avaliá-las.

    Linha do relatório: expression_value

  • DEFAULT in VALUES

    o valor padrão da coluna

    Um valor padrão literal é copiado para a linha.

    Linha do relatório: default_keyword_filled

  • DEFAULT in VALUES without a literal default

    NULL

    Não há valor para copiar.

    Linha do relatório: default_keyword_null

  • REPLACE and INSERT IGNORE

    linhas simples

    Um dump tem uma linha por chave, então as linhas são as mesmas.

    Linha do relatório: replace_as_insert

  • types IntoSQL doesn't know

    LONGBLOB

    Um blob guarda os bytes de qualquer valor; mude o tipo depois da carga.

    Linha do relatório: unknown_type

  • values that don't fit their column

    NULL

    Um dump danificado ou escrito à mão pode conter valores que a coluna não aceita; eles viram NULL para que o resto carregue.

    Linha do relatório: invalid_value_null

  • unreadable geometries

    NULL

    Bytes que não são uma geometria não podem ser guardados como uma.

    Linha do relatório: bad_geometry

  • TIMESTAMP

    mantido, carregado no fuso horário que o dump informa

    O script define o mesmo fuso horário que o dump definiu, então cada instante é o mesmo.

  • VECTOR(n) (MariaDB 11.7+)

    json com os floats como array

    O MySQL 5.7 e o 8.0 não têm tipo vector; um array JSON mantém cada float em qualquer versão.

    Linha do relatório: type_replaced

No arquivoNo scriptLinha do relatório
utf8mb4_0900_* and utf8mb4_uca1400_* collationsutf8mb4_unicode_520_ci (utf8mb4_bin para as binárias)O MySQL não conhece as collations mais novas, o erro que impede a maioria dos dumps do MySQL 8 de carregar em outro lugar. unicode_520 é a que segue mais de perto as mesmas regras Unicode.collation_replaced
zero, partial or impossible dates (0000-00-00, 2024-02-30)mantidoO script carrega com ALLOW_INVALID_DATES e sem NO_ZERO_DATE, então o MySQL mantém os mesmos valores que a origem tinha.
TIMETIME, incluindo duraçõesO mesmo tipo, com o mesmo intervalo.
TINYINT(1), BOOLTINYINT(1)O mesmo tipo com os mesmos valores.
UNSIGNED and ZEROFILLmantidoOs mesmos tipos.
ENUM and SET, the '' error value includedmantidoOs mesmos tipos; o script carrega sem o modo estrito, então o valor de erro carrega como está.
JSONJSONO MySQL lê o mesmo texto JSON.
NUL bytes in textmantidoO valor é copiado com o mesmo escape que a origem usava.
AUTO_INCREMENTAUTO_INCREMENT com o contador da tabelaO contador continua de onde a origem parou, incluindo os contadores por grupo do MyISAM.
MyISAM AUTO_INCREMENT on the second column of a key, in a table that isn't MyISAM in the dumpum índice na coluna e um contador para a tabelaO InnoDB só conta uma coluna quando ela começa um índice, e uma vez para a tabela toda.myisam_group_autoincrement
ON UPDATE CURRENT_TIMESTAMPmantidoA mesma cláusula, com as frações de segundo da coluna.
generated columnsVIRTUAL ou STORED como na origemA mesma fórmula, traduzida termo a termo.
generated columns with functions IntoSQL doesn't readuma coluna simplesUma fórmula que o IntoSQL não consegue ler deixa uma coluna simples e uma linha no relatório.generated_not_translated
INVISIBLE columnscolunas comunsO MySQL tem colunas invisíveis a partir do 8.0.23, o MariaDB a partir do 10.3.invisible_column
CHECK constraintsmantidos (o MySQL 5.7 os analisa e ignora)Os mesmos CHECKs, traduzidos termo a termo.
CHECK constraints with functions IntoSQL doesn't readnão criadoUm CHECK que o IntoSQL não consegue ler fica de fora e é informado.check_skipped
CHECK ... NOT ENFORCEDnão criadoO MySQL 5.7 e o MariaDB não conseguem manter um CHECK sem aplicá-lo, e as linhas podem violá-lo.check_not_enforced
expression defaults, and defaults on TEXT, BLOB, JSON and GEOMETRYsem valor padrãoO MySQL os aceita a partir do 8.0.13; o script carrega no 5.7, então eles ficam de fora e são informados. O MariaDB os aceita.default_not_translated
functional indexes, KEY ((expr))não criadoO MySQL indexa expressões a partir do 8.0.13 e o MariaDB nunca; uma coluna gerada com um índice faz o mesmo.index_skipped
keys and indexes on a prefix, c(20)mantidoO mesmo índice.
FULLTEXT indexesmantidoO mesmo índice; MATCH ... AGAINST funciona como antes.
SPATIAL indexesmantidoO mesmo índice.
foreign keysmantidas, carregadas com FOREIGN_KEY_CHECKS=0As mesmas chaves; as linhas carregam como carregavam a partir do dump de origem.
GEOMETRY, POINT, POLYGON...mantido, com o SRID de cada valorOs bytes de geometria do próprio servidor são copiados, incluindo o SRID.
INET4, INET6, UUID (MariaDB)varchar(15), varchar(39), char(36)O MySQL não tem esses tipos; o texto que o MariaDB escreve para eles é mantido.type_replaced
BINARY, VARBINARY, BLOBmantidoBytes continuam sendo bytes.
PARTITION BYuma tabelaAs linhas são as mesmas; particione a tabela de novo se precisar.partitions_dropped
WITH SYSTEM VERSIONING (MariaDB)uma tabela com as linhas atuaisUm dump contém só as linhas atuais; o MySQL não tem versionamento de sistema.system_versioning_dropped
Aria, ColumnStore, CONNECT, Spider, RocksDB (MariaDB)InnoDBO MySQL não tem nenhum desses mecanismos. Todos os outros mecanismos são mantidos.engine_dropped
CREATE SEQUENCE (MariaDB)não criadoO MySQL não tem sequências.sequence_not_converted
views, triggers, procedures, functions and eventslistados no relatórioEles são listados para você recriá-los; o código deles costuma citar o definer e recursos do servidor.not_converted_objects
NOT NULL columns with values that become NULLNOT NULL removidoUma coluna cujos valores tiveram de virar NULL não pode manter NOT NULL, senão a carga pararia.not_null_relaxed
text that isn't valid in its character setos bytes inválidos como o caractere de substituiçãoO script é UTF-8; bytes que não são parariam a carga.invalid_utf8_replaced
text decoded twice (ñ)copiado como estáO dump contém exatamente esses caracteres, então eles são copiados; o relatório os aponta.mojibake_suspected
dumps without CREATE TABLEtipos deduzidos dos valoresUm dump feito com --no-create-info só tem linhas, então os tipos vêm dos valores.no_schema
geometries in a dump without CREATE TABLEGEOMETRYO formato de geometria do MySQL é reconhecido pelos valores.
SET NAMES utf8 from utf8mb4 tablesconvertido, com um avisoO mysqldump do MySQL 5.x escreve utf8 de 3 bytes por padrão e troca cada emoji por um ponto de interrogação antes que qualquer conversor veja o arquivo.dump_lost_four_byte_chars
dumps without SET NAMES whose text isn't UTF-8lido como Latin-1 (Windows-1252)O latin1 do MySQL é o Windows-1252, a codificação comum desses dumps.charset_guessed
sjis, cp932, gbk, big5 dumpslido como UTF-8, com um avisoEssas codificações ainda não são decodificadas.unsupported_charset
UNHEX('..'), CONVERT(b'..', UNSIGNED), CONVERT(".." USING x), ST_GeomFromText('..') in rowsavaliadasAlgumas ferramentas de dump escrevem valores como essas chamadas; elas são lidas como os valores que produzem.
other expressions in rowsNULLUm conversor que não executa um banco de dados não consegue avaliá-las.expression_value
DEFAULT in VALUESo valor padrão da colunaUm valor padrão literal é copiado para a linha.default_keyword_filled
DEFAULT in VALUES without a literal defaultNULLNão há valor para copiar.default_keyword_null
REPLACE and INSERT IGNORElinhas simplesUm dump tem uma linha por chave, então as linhas são as mesmas.replace_as_insert
types IntoSQL doesn't knowLONGBLOBUm blob guarda os bytes de qualquer valor; mude o tipo depois da carga.unknown_type
values that don't fit their columnNULLUm dump danificado ou escrito à mão pode conter valores que a coluna não aceita; eles viram NULL para que o resto carregue.invalid_value_null
unreadable geometriesNULLBytes que não são uma geometria não podem ser guardados como uma.bad_geometry
TIMESTAMPmantido, carregado no fuso horário que o dump informaO script define o mesmo fuso horário que o dump definiu, então cada instante é o mesmo.
VECTOR(n) (MariaDB 11.7+)json com os floats como arrayO MySQL 5.7 e o 8.0 não têm tipo vector; um array JSON mantém cada float em qualquer versão.type_replaced

Carregue o script no MySQL

O script cria as tabelas, copia as linhas e depois adiciona chaves, índices e chaves estrangeiras, então carrega rápido e para no primeiro erro.

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

As chaves estrangeiras são criadas como o dump as declara, com FOREIGN_KEY_CHECKS=0 enquanto as linhas carregam, então uma linha que aponta para uma linha que não existe não para a carga.

Para um dump grande, execute o cliente na mesma máquina do servidor e aumente max_allowed_packet se uma única linha for muito grande.

O IntoSQL Pro carrega o arquivo direto no MySQL pelo app para desktop ou pela linha de comando, sem escrever um script.

Gere o dump do MySQL para o melhor resultado

O conversor lê o que o dump contém. Estas opções mantêm mais dos seus dados nele:

  • --default-character-set=utf8mb4 mantém emoji e outros caracteres de 4 bytes, que um dump em utf8 perde antes de o conversor vê-lo.
  • --hex-blob escreve as colunas binárias em hexadecimal, o que sobrevive à cópia entre sistemas.
  • --routines --triggers --events adicionam esses objetos ao dump, para que o relatório possa listá-los.

O que não é convertido

Views, triggers, procedures, funções e outros objetos escritos na própria linguagem do MySQL aparecem no relatório pelo nome, nunca são descartados em silêncio, para você conferir cada um com a versão do MySQL em que vai carregar antes de recriá-lo.

Perguntas sobre levar o MySQL entre versões

Não encontrou a resposta? Escreva para nós pela página de contato e uma pessoa responde. Página de contato

Meu dump é enviado?

Não. O conversor roda no seu navegador e lê o dump do seu disco em partes, então ele nunca sai do seu computador. O app para desktop e a linha de comando também convertem no seu computador.

Qual o tamanho máximo do dump?

O conversor nunca guarda o dump inteiro na memória: ele lê o arquivo duas vezes, por intervalos, e escreve o script à medida que avança. Dumps de vários gigabytes são convertidos no navegador, no app para desktop e com a linha de comando.

Ele lê dumps do MariaDB?

Sim. Dumps do mariadb-dump e do MariaDB 10.3 ao 12 são convertidos da mesma forma, incluindo as colunas INET6, INET4 e UUID do MariaDB.

O que acontece com datas 0000-00-00?

O MySQL as mantém: o script define um modo SQL que aceita datas zero e impossíveis durante a carga, então elas chegam como estão.

Os valores de AUTO_INCREMENT são mantidos?

Sim. AUTO_INCREMENT fica como está, e o contador da tabela continua de onde o dump parou.

TINYINT(1) vira boolean?

Continua TINYINT(1), como na origem, então cada valor mantém seu número.

E os procedimentos armazenados e gatilhos?

Aparecem no relatório pelo nome e não são convertidos, para você conferir cada um com a versão do MySQL em que vai carregar antes de recriá-lo. ON UPDATE CURRENT_TIMESTAMP fica como está.

Em quais versões do MySQL o script carrega?

MySQL 5.7 ou posterior. Cada dump de teste carrega no 5.7 e no 9, parando no primeiro erro se algo der errado.