Поддержка и абонентское обслуживание

Как перенести базу данных MySQL?

Марина, Томск 0

Переезжаю на новый хостинг и не могу понять, как правильно перенести базу MySQL, чтобы сайт на WordPress не сломался. Выгрузила дамп через phpMyAdmin, а он не заходит на новом сервере - ругается на кодировку.

Дмитрий Акиндинов технический администратор сайтов

ответил

Перенос базы — это экспорт дампа командой mysqldump (или через phpMyAdmin) на старом сервере, импорт на новом и правка данных доступа в конфиге сайта: wp-config.php для WordPress или .settings.php для Битрикса. Проблемы с кодировкой почти всегда решаются явным указанием utf8mb4 при экспорте и импорте — её сейчас использует WordPress по умолчанию.

Через консоль (SSH или в интерфейсе хостинга) экспорт делается так: mysqldump -u пользователь -p —single-transaction —default-character-set=utf8mb4 имя_базы > dump.sql. Флаг single-transaction нужен для таблиц InnoDB, чтобы дамп снялся консистентно, даже если в базу в этот момент кто-то пишет.

На новом сервере создайте пустую базу с той же кодировкой utf8mb4_unicode_ci, импортируйте дамп командой mysql -u пользователь -p имя_базы < dump.sql, и только после успешного импорта меняйте данные подключения в конфиге сайта — иначе при ошибке сайт останется рабочим на старой базе, пока вы разбираетесь.

Через phpMyAdmin тот же перенос упирается в размер загрузки на хостинге — обычно это 2-64 МБ на файл. Для базы больше этого объёма экспорт лучше делать сжатым в gzip или через консоль, если она доступна. Крупные базы интернет-магазинов часто в это ограничение не укладываются.

Подробный разбор Медленные запросы MySQL: как найти виновника и ускорить сайт

Задать свой вопрос

Вопросы проходят модерацию. Ответ появляется на сайте в течение пары дней.

Похожие вопросы

Все вопросы по теме "Поддержка и абонентское обслуживание"

Заявка

Обсудим задачу

Напишите имя и телефон, выберите удобный канал. Перезвоню или напишу в течение часа в рабочее время.

Куда удобнее ответить?