Что подготовить
Узнайте тип и версию базы на старом хостинге: MySQL или MariaDB. На новом должна быть та же или более новая версия. Для WordPress рекомендованы MariaDB 10.11 или выше либо MySQL 8.0 или выше.
Сделайте резервную копию файлов и базы и сохраните её отдельно от сервера. Запишите параметры подключения: имя базы, пользователя, хост. Если сайт активно принимает данные, выберите время с наименьшей нагрузкой.
Пошаговый перенос базы
- Экспортируйте базу. Через phpMyAdmin выберите базу и пункт «Экспорт». Через командную строку используйте утилиту mysqldump.
- Для таблиц InnoDB добавьте параметр --single-transaction: копия получится согласованной без блокировки таблиц.
- На новом хостинге создайте пустую базу и пользователя и выдайте ему права на эту базу.
- Импортируйте дамп через phpMyAdmin или командой mysql с перенаправлением файла.
- Исправьте параметры подключения в конфигурации сайта. В WordPress это DB_NAME, DB_USER, DB_PASSWORD и DB_HOST в файле wp-config.php.
- Проверьте число таблиц и записей, затем откройте сайт на новом сервере.
Общий порядок переезда сайта описан в материале перенос сайта на другой хостинг.
Способы экспорта и импорта
| Способ | Когда подходит | Особенности |
|---|---|---|
| phpMyAdmin | Небольшие базы | Просто, но есть ограничения по размеру |
| mysqldump и mysql | Большие базы, доступ по SSH | Параметр --single-transaction для InnoDB |
| Панель хостинга | Если есть функция импорта | Зависит от провайдера |
| Плагин или WP-CLI для WordPress | Сайты на WordPress | Для замены адресов нужен wp search-replace |
Особенности WordPress
В WordPress адреса сайта хранятся в базе данных. Если домен меняется, их нужно обновить. Команда WP-CLI wp search-replace заменяет старый адрес на новый по всей базе и корректно обрабатывает сериализованные данные. Перед заменой сделайте пробный запуск с параметром --dry-run.
Параметры подключения к базе находятся в файле wp-config.php. Если на новом хостинге другие имя базы, пользователь или хост, их нужно изменить вручную. Подробнее о развёртывании на сервере читайте в статье как установить WordPress на VPS.
Минимизация простоя
Полностью избежать простоя при переносе базы сложно, но можно сократить его до минимума. Сделайте дамп, импортируйте его на новый сервер и проверьте сайт до смены DNS. Если на старом сайте меняются данные (заказы, комментарии), перед финальным переключением повторите экспорт и импорт свежих изменений.
Заранее уменьшите TTL записи домена, чтобы после смены A-записи пользователи быстрее попали на новый сервер. Старую базу не удаляйте, пока не убедитесь, что всё работает. Подробнее читайте в материале как подключить домен к VPS.
152-ФЗ и выбор хостинга
По части 5 статьи 18 закона 152-ФЗ персональные данные граждан РФ при сборе нужно записывать и хранить в базах данных на территории России. Выбирайте провайдера с инфраструктурой в РФ. У Timeweb Cloud есть дата-центры в Москве, Санкт-Петербурге и Новосибирске.
У Aeza также есть локации в Москве и Санкт-Петербурге, при этом услуги оказывает компания EZ Infrastructure Limited (Гонконг). Сравнение провайдеров смотрите в статье Timeweb или Aeza. Ссылки на провайдеров партнёрские, цена для вас не меняется.
Частые сложности
- Разные версии MySQL и MariaDB могут вести себя по-разному, проверяйте совместимость.
- Большие дампы могут не загрузиться через phpMyAdmin из-за лимитов, тогда используйте командную строку.
- Забытые права пользователя базы приводят к ошибке подключения.
- После смены домена в базе остаются старые адреса, пока вы их не замените.
- Кодировка дампа и базы должна совпадать, иначе текст отобразится некорректно.
Читайте также: