При переносе сайта на другой сервер обычно нужно перенести две части: файлы сайта и базу данных MySQL. В этой инструкции разбираем именно базу данных: как сделать экспорт, импортировать ее на новом сервере и что проверить после переноса.
Перед началом
- Сделайте резервную копию базы данных до любых изменений.
- Если сайт рабочий, выполняйте перенос в период минимальной активности.
- Для интернет-магазинов, форумов, CRM и других динамических сайтов временно отключите новые заказы, комментарии или регистрации на время создания финального дампа.
- Подготовьте имя базы, пользователя базы, пароль и хост базы данных на новом сервере.
Вариант 1: перенос небольшой базы через phpMyAdmin
Этот способ подходит для небольших и средних баз, которые можно скачать и загрузить через браузер без ошибок таймаута.
Экспорт со старого сервера
- Откройте панель управления хостингом и перейдите в phpMyAdmin.
- Выберите нужную базу данных слева.
- Откройте вкладку Экспорт.
- Выберите формат SQL. Если доступно сжатие, используйте gzip, чтобы файл был меньше.
- Скачайте файл на компьютер. Обычно это файл
.sqlили.sql.gz.
Импорт на новый сервер
- Создайте новую базу данных и пользователя базы в DirectAdmin или в разделе управления MySQL вашей панели.
- Выдайте пользователю права на эту базу данных.
- Откройте phpMyAdmin на новом сервере.
- Выберите пустую базу данных.
- Откройте вкладку Импорт и загрузите файл
.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 / фреймворк | Где проверить настройки базы |
|---|---|
| WordPress | wp-config.php |
| Joomla | configuration.php |
| OpenCart | config.php и admin/config.php |
| Laravel | .env |
Кодировка и кириллица
Экспортируйте и импортируйте базу в UTF-8. После переноса откройте несколько страниц сайта и проверьте, что русский и украинский текст отображаются нормально. Если вместо букв появились знаки вопроса, лучше остановиться и восстановиться из резервной копии, а не импортировать поврежденный дамп несколько раз поверх той же базы.
Частые ошибки
- Access denied - неверный пользователь, пароль или недостаточно прав на базу.
- Unknown database - база не создана до импорта.
- MySQL server has gone away или timeout - дамп слишком большой для импорта через браузер; используйте SSH или обратитесь в поддержку.
- Table already exists - импорт идет в непустую базу. Импортируйте в пустую базу или удалите старые таблицы, если точно уверены, что они не нужны.
- Кириллица отображается некорректно - проблема с кодировкой при экспорте или импорте.
Что отправить в поддержку
Если нужна помощь, укажите старый сервер, новый сервер, размер базы, название CMS, точный текст ошибки, имя файла дампа и есть ли у вас резервная копия. Так мы быстрее поймем, где именно остановился перенос.
