---
title: "Перенос дампа MySQL на другую версию MySQL"
description: "Конвертируйте дамп MySQL для той версии MySQL, в которую загружаете: дамп 8.0 или 9 получает collation, которые принимает 5.7. Те же таблицы, ключи и данные, с отчетом."
canonical: https://intosql.com/ru/mysql-v-mysql
last_updated: 2026-10-15
---

# Перенос дампа MySQL на другую версию MySQL

Перетащите дамп из mysqldump, mysqlpump, phpMyAdmin или Adminer, из MySQL с 5.5 по 9, в формате .sql или .sql.gz, и скачайте скрипт, который загружается на MySQL 5.7 и новее. Collation, которые знает только MySQL 8 и новее, например utf8mb4_0900_ai_ci, становятся utf8mb4_unicode_520_ci, и каждое изменение указано в отчете.

[Руководство по миграции MySQL в MySQL](https://intosql.com/docs/migrations/mysql-to-mysql)

[Типы данных из MySQL в MySQL](https://intosql.com/docs/types/mysql-to-mysql)

## Что меняется между файлом и скриптом

Каждая строка - это правило, которое применяет конвертер, и строка отчета, которую он пишет, когда правило что-то меняет в ваших данных.

| В файле | В скрипте | Строка отчета |
| --- | --- | --- |
| utf8mb4_0900_* and utf8mb4_uca1400_* collations | utf8mb4_unicode_520_ci (utf8mb4_bin для двоичных) | `collation_replaced` |
| zero, partial or impossible dates (0000-00-00, 2024-02-30) | сохраняется |  |
| TIME | TIME, включая длительности |  |
| TINYINT(1), BOOL | TINYINT(1) |  |
| UNSIGNED and ZEROFILL | сохраняется |  |
| ENUM and SET, the '' error value included | сохраняется |  |
| JSON | JSON |  |
| NUL bytes in text | сохраняется |  |
| AUTO_INCREMENT | AUTO_INCREMENT со счетчиком таблицы |  |
| MyISAM AUTO_INCREMENT on the second column of a key, in a table that isn't MyISAM in the dump | индекс по столбцу и один счетчик на таблицу | `myisam_group_autoincrement` |
| ON UPDATE CURRENT_TIMESTAMP | сохраняется |  |
| generated columns | VIRTUAL или STORED, как в источнике |  |
| generated columns with functions IntoSQL doesn't read | обычный столбец | `generated_not_translated` |
| INVISIBLE columns | обычные столбцы | `invisible_column` |
| CHECK constraints | сохраняются (MySQL 5.7 их разбирает и игнорирует) |  |
| CHECK constraints with functions IntoSQL doesn't read | не создается | `check_skipped` |
| CHECK ... NOT ENFORCED | не создается | `check_not_enforced` |
| expression defaults, and defaults on TEXT, BLOB, JSON and GEOMETRY | без значения по умолчанию | `default_not_translated` |
| functional indexes, KEY ((expr)) | не создается | `index_skipped` |
| keys and indexes on a prefix, c(20) | сохраняется |  |
| FULLTEXT indexes | сохраняется |  |
| SPATIAL indexes | сохраняется |  |
| foreign keys | сохраняются, загрузка с FOREIGN_KEY_CHECKS=0 |  |
| GEOMETRY, POINT, POLYGON... | сохраняется, с SRID каждого значения |  |
| INET4, INET6, UUID (MariaDB) | varchar(15), varchar(39), char(36) | `type_replaced` |
| BINARY, VARBINARY, BLOB | сохраняется |  |
| PARTITION BY | одна таблица | `partitions_dropped` |
| WITH SYSTEM VERSIONING (MariaDB) | таблица с текущими строками | `system_versioning_dropped` |
| Aria, ColumnStore, CONNECT, Spider, RocksDB (MariaDB) | InnoDB | `engine_dropped` |
| CREATE SEQUENCE (MariaDB) | не создается | `sequence_not_converted` |
| views, triggers, procedures, functions and events | перечисляются в отчете | `not_converted_objects` |
| NOT NULL columns with values that become NULL | NOT NULL снимается | `not_null_relaxed` |
| text that isn't valid in its character set | неверные байты заменяются символом замены | `invalid_utf8_replaced` |
| text decoded twice (Ã±) | копируется как есть | `mojibake_suspected` |
| dumps without CREATE TABLE | типы определяются по значениям | `no_schema` |
| geometries in a dump without CREATE TABLE | GEOMETRY |  |
| SET NAMES utf8 from utf8mb4 tables | конвертируется с предупреждением | `dump_lost_four_byte_chars` |
| dumps without SET NAMES whose text isn't UTF-8 | читается как Latin-1 (Windows-1252) | `charset_guessed` |
| sjis, cp932, gbk, big5 dumps | читается как UTF-8, с предупреждением | `unsupported_charset` |
| UNHEX('..'), CONVERT(b'..', UNSIGNED), CONVERT(".." USING x), ST_GeomFromText('..') in rows | вычисляются |  |
| other expressions in rows | NULL | `expression_value` |
| DEFAULT in VALUES | значение столбца по умолчанию | `default_keyword_filled` |
| DEFAULT in VALUES without a literal default | NULL | `default_keyword_null` |
| REPLACE and INSERT IGNORE | обычные строки | `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 | сохраняется, загрузка в часовом поясе, указанном в дампе |  |
| VECTOR(n) (MariaDB 11.7+) | json с числами float в виде массива | `type_replaced` |

## Загрузите скрипт в MySQL

Скрипт создает таблицы, копирует строки, затем добавляет ключи, индексы и внешние ключи, поэтому загрузка идет быстро и останавливается на первой ошибке.

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

Внешние ключи создаются так, как их объявляет дамп, с FOREIGN_KEY_CHECKS=0 на время загрузки строк, поэтому строка, которая ссылается на отсутствующую строку, не останавливает загрузку.

Для большого дампа запускайте клиент на той же машине, где работает сервер, и увеличьте max_allowed_packet, если отдельная строка очень большая.

IntoSQL Pro загружает файл прямо в MySQL из приложения для компьютера или командной строки, без написания скрипта.

## Как создать дамп MySQL для лучшего результата

Конвертер читает то, что есть в дампе. Эти параметры сохраняют в нем больше ваших данных:

- --default-character-set=utf8mb4 сохраняет эмодзи и другие 4-байтовые символы, которые дамп в utf8 теряет еще до конвертера.
- --hex-blob записывает двоичные столбцы в шестнадцатеричном виде, который не портится при копировании между системами.
- --routines --triggers --events добавляют эти объекты в дамп, чтобы отчет мог их перечислить.

## Что не конвертируется

Представления, триггеры, процедуры, функции и другие объекты, написанные на собственном языке MySQL, перечислены в отчете по имени и никогда не удаляются молча, чтобы вы могли проверить каждый на той версии MySQL, в которую загружаете, прежде чем создать его заново.

## Вопросы о переносе MySQL между версиями

### Мой дамп загружается на сервер?

Нет. Конвертер работает в вашем браузере и читает дамп с диска по частям, поэтому он никогда не покидает ваш компьютер. Приложение для компьютера и командная строка тоже конвертируют на вашем компьютере.

### Насколько большим может быть дамп?

Конвертер никогда не держит весь дамп в памяти: он читает файл дважды, по диапазонам, и пишет скрипт по ходу чтения. Дампы в несколько гигабайт конвертируются в браузере, в приложении для компьютера и в командной строке.

### Читает ли он дампы MariaDB?

Да. Дампы из mariadb-dump и из MariaDB с 10.3 по 12 конвертируются так же, включая столбцы INET6, INET4 и UUID в MariaDB.

### Что происходит с датами 0000-00-00?

MySQL их сохраняет: на время загрузки скрипт задает режим SQL, который принимает нулевые и невозможные даты, поэтому они приходят как есть.

### Сохраняются ли значения AUTO_INCREMENT?

Да. AUTO_INCREMENT остается как есть, а счетчик таблицы продолжается с того места, где его оставил дамп.

### Становится ли TINYINT(1) типом boolean?

Он остается TINYINT(1), как в источнике, поэтому каждое значение сохраняет свое число.

### А хранимые процедуры и триггеры?

Они перечислены в отчете по имени и не конвертируются, чтобы вы могли проверить каждый на той версии MySQL, в которую загружаете, прежде чем создать его заново. ON UPDATE CURRENT_TIMESTAMP остается как есть.

### На каких версиях MySQL загружается скрипт?

MySQL 5.7 и новее. Каждый тестовый дамп загружается на 5.7 и 9 и останавливается на первой ошибке, если что-то пошло не так.

## Из MySQL

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

## В MySQL

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

## Руководство и все пары

- [Руководство по миграции MySQL в MySQL](https://intosql.com/docs/migrations/mysql-to-mysql)
- [Типы данных из MySQL в MySQL](https://intosql.com/docs/types/mysql-to-mysql)
- [Все пары баз данных](https://intosql.com/ru/migratsiya-bazy-dannykh)
