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

Перед началом

  • Сделайте резервную копию базы данных до любых изменений.
  • Если сайт рабочий, выполняйте перенос в период минимальной активности.
  • Для интернет-магазинов, форумов, CRM и других динамических сайтов временно отключите новые заказы, комментарии или регистрации на время создания финального дампа.
  • Подготовьте имя базы, пользователя базы, пароль и хост базы данных на новом сервере.

Вариант 1: перенос небольшой базы через phpMyAdmin

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

Экспорт со старого сервера

  1. Откройте панель управления хостингом и перейдите в phpMyAdmin.
  2. Выберите нужную базу данных слева.
  3. Откройте вкладку Экспорт.
  4. Выберите формат SQL. Если доступно сжатие, используйте gzip, чтобы файл был меньше.
  5. Скачайте файл на компьютер. Обычно это файл .sql или .sql.gz.

Импорт на новый сервер

  1. Создайте новую базу данных и пользователя базы в DirectAdmin или в разделе управления MySQL вашей панели.
  2. Выдайте пользователю права на эту базу данных.
  3. Откройте phpMyAdmin на новом сервере.
  4. Выберите пустую базу данных.
  5. Откройте вкладку Импорт и загрузите файл .sql или .sql.gz.

Вариант 2: перенос большой базы через SSH

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

mysqldump -u USER -p DATABASE > database.sql
mysql -u USER -p DATABASE < database.sql

Для больших дампов удобно использовать сжатие:

gzip database.sql
gunzip < database.sql.gz | mysql -u USER -p DATABASE

Замените USER и DATABASE на реального пользователя и имя базы данных. Пароль вводится после запуска команды.

Обновите настройки сайта

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

CMS / фреймворкГде проверить настройки базы
WordPresswp-config.php
Joomlaconfiguration.php
OpenCartconfig.php и admin/config.php
Laravel.env

Кодировка и кириллица

Экспортируйте и импортируйте базу в UTF-8. После переноса откройте несколько страниц сайта и проверьте, что русский и украинский текст отображаются нормально. Если вместо букв появились знаки вопроса, лучше остановиться и восстановиться из резервной копии, а не импортировать поврежденный дамп несколько раз поверх той же базы.

Частые ошибки

  • Access denied - неверный пользователь, пароль или недостаточно прав на базу.
  • Unknown database - база не создана до импорта.
  • MySQL server has gone away или timeout - дамп слишком большой для импорта через браузер; используйте SSH или обратитесь в поддержку.
  • Table already exists - импорт идет в непустую базу. Импортируйте в пустую базу или удалите старые таблицы, если точно уверены, что они не нужны.
  • Кириллица отображается некорректно - проблема с кодировкой при экспорте или импорте.

Что отправить в поддержку

Если нужна помощь, укажите старый сервер, новый сервер, размер базы, название CMS, точный текст ошибки, имя файла дампа и есть ли у вас резервная копия. Так мы быстрее поймем, где именно остановился перенос.