Как перенести базу данных 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 или через консоль, если она доступна. Крупные базы интернет-магазинов часто в это ограничение не укладываются.
Задать свой вопрос
Вопросы проходят модерацию. Ответ появляется на сайте в течение пары дней.
Вопрос отправлен. После проверки он появится на сайте вместе с ответом.
Вопрос не отправлен: нужно подтвердить согласие на обработку персональных данных.