---
title: "Levar um dump do MySQL para outra versão"
description: "Converta um dump do MySQL para a versão do MySQL em que vai carregar: um dump do 8.0 ou 9 recebe collations que o 5.7 aceita. Mesmas tabelas, chaves e dados."
canonical: https://intosql.com/pt-br/mysql-para-mysql
last_updated: 2026-10-15
---

# Levar um dump do MySQL para outra versão

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.

[Guia de migração de MySQL para MySQL](https://intosql.com/docs/migrations/mysql-to-mysql)

[Tipos de dados de MySQL para MySQL](https://intosql.com/docs/types/mysql-to-mysql)

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

| No arquivo | No script | Linha do relatório |
| --- | --- | --- |
| utf8mb4_0900_* and utf8mb4_uca1400_* collations | utf8mb4_unicode_520_ci (utf8mb4_bin para as binárias) | `collation_replaced` |
| zero, partial or impossible dates (0000-00-00, 2024-02-30) | mantido |  |
| TIME | TIME, incluindo durações |  |
| TINYINT(1), BOOL | TINYINT(1) |  |
| UNSIGNED and ZEROFILL | mantido |  |
| ENUM and SET, the '' error value included | mantido |  |
| JSON | JSON |  |
| NUL bytes in text | mantido |  |
| AUTO_INCREMENT | AUTO_INCREMENT com o contador da tabela |  |
| 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 | `myisam_group_autoincrement` |
| ON UPDATE CURRENT_TIMESTAMP | mantido |  |
| generated columns | VIRTUAL ou STORED como na origem |  |
| generated columns with functions IntoSQL doesn't read | uma coluna simples | `generated_not_translated` |
| INVISIBLE columns | colunas comuns | `invisible_column` |
| CHECK constraints | mantidos (o MySQL 5.7 os analisa e ignora) |  |
| CHECK constraints with functions IntoSQL doesn't read | não criado | `check_skipped` |
| CHECK ... NOT ENFORCED | não criado | `check_not_enforced` |
| expression defaults, and defaults on TEXT, BLOB, JSON and GEOMETRY | sem valor padrão | `default_not_translated` |
| functional indexes, KEY ((expr)) | não criado | `index_skipped` |
| keys and indexes on a prefix, c(20) | mantido |  |
| FULLTEXT indexes | mantido |  |
| SPATIAL indexes | mantido |  |
| foreign keys | mantidas, carregadas com FOREIGN_KEY_CHECKS=0 |  |
| GEOMETRY, POINT, POLYGON... | mantido, com o SRID de cada valor |  |
| INET4, INET6, UUID (MariaDB) | varchar(15), varchar(39), char(36) | `type_replaced` |
| BINARY, VARBINARY, BLOB | mantido |  |
| PARTITION BY | uma tabela | `partitions_dropped` |
| WITH SYSTEM VERSIONING (MariaDB) | uma tabela com as linhas atuais | `system_versioning_dropped` |
| Aria, ColumnStore, CONNECT, Spider, RocksDB (MariaDB) | InnoDB | `engine_dropped` |
| CREATE SEQUENCE (MariaDB) | não criado | `sequence_not_converted` |
| views, triggers, procedures, functions and events | listados no relatório | `not_converted_objects` |
| NOT NULL columns with values that become NULL | NOT NULL removido | `not_null_relaxed` |
| text that isn't valid in its character set | os bytes inválidos como o caractere de substituição | `invalid_utf8_replaced` |
| text decoded twice (Ã±) | copiado como está | `mojibake_suspected` |
| dumps without CREATE TABLE | tipos deduzidos dos valores | `no_schema` |
| geometries in a dump without CREATE TABLE | GEOMETRY |  |
| SET NAMES utf8 from utf8mb4 tables | convertido, com um aviso | `dump_lost_four_byte_chars` |
| dumps without SET NAMES whose text isn't UTF-8 | lido como Latin-1 (Windows-1252) | `charset_guessed` |
| sjis, cp932, gbk, big5 dumps | lido como UTF-8, com um aviso | `unsupported_charset` |
| UNHEX('..'), CONVERT(b'..', UNSIGNED), CONVERT(".." USING x), ST_GeomFromText('..') in rows | avaliadas |  |
| other expressions in rows | NULL | `expression_value` |
| DEFAULT in VALUES | o valor padrão da coluna | `default_keyword_filled` |
| DEFAULT in VALUES without a literal default | NULL | `default_keyword_null` |
| REPLACE and INSERT IGNORE | linhas simples | `replace_as_insert` |
| types IntoSQL doesn't know | LONGBLOB | `unknown_type` |
| values that don't fit their column | NULL | `invalid_value_null` |
| unreadable geometries | NULL | `bad_geometry` |
| TIMESTAMP | mantido, carregado no fuso horário que o dump informa |  |
| VECTOR(n) (MariaDB 11.7+) | json com os floats como array | `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.

```shell
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

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

## De MySQL

- [MySQL para PostgreSQL](https://intosql.com/pt-br/mysql-para-postgresql)
- [MySQL para MariaDB](https://intosql.com/pt-br/mysql-para-mariadb)
- [MySQL para SQLite](https://intosql.com/pt-br/mysql-para-sqlite)
- [MySQL para SQL Server](https://intosql.com/pt-br/mysql-para-sql-server)
- [MySQL para Oracle](https://intosql.com/pt-br/mysql-para-oracle)

## Para MySQL

- [MariaDB para MySQL](https://intosql.com/pt-br/mariadb-para-mysql)
- [PostgreSQL para MySQL](https://intosql.com/pt-br/postgresql-para-mysql)
- [SQL Server para MySQL](https://intosql.com/pt-br/sql-server-para-mysql)
- [SQLite para MySQL](https://intosql.com/pt-br/sqlite-para-mysql)
- [Oracle para MySQL](https://intosql.com/pt-br/oracle-para-mysql)

## Guia e todos os pares

- [Guia de migração de MySQL para MySQL](https://intosql.com/docs/migrations/mysql-to-mysql)
- [Tipos de dados de MySQL para MySQL](https://intosql.com/docs/types/mysql-to-mysql)
- [Todos os pares de bancos de dados](https://intosql.com/pt-br/migracao-de-banco-de-dados)
