Экспорт, импорт и перенос базы данных MySQL через phpMyAdmin

Печать
  • 1

Коротко: phpMyAdmin в cPanel позволяет сохранить базу данных MySQL в файл (экспорт) и загрузить файл в базу (импорт) прямо в браузере, без установки программ. Перенос базы на другой сервер состоит именно из этих двух действий и ещё одного: в настройках сайта нужно прописать доступ к новой базе.

Где найти phpMyAdmin

  1. Войдите в cPanel. Это можно сделать и из личного кабинета: откройте Мои услуги и выберите хостинг.
  2. В разделе Databases нажмите phpMyAdmin. Он откроется в новой вкладке.
  3. Слева показан список баз аккаунта. Их имена начинаются с логина cPanel и символа подчёркивания, например login_shop.

Перед переносом базы

  • Остановите изменения. Заказы, комментарии и регистрации, сделанные после экспорта, на новый сервер не попадут. Для интернет-магазина или посещаемого сайта включите режим обслуживания или выберите спокойное время.
  • Сохраните оригинал. Не удаляйте базу на старом сервере, пока сайт несколько дней не проработает без проблем на новом.
  • Переносите весь сайт? У файлов, почты и DNS свои шаги, они описаны в статье о переезде сайта в TopHost. Здесь речь идёт только о базе данных.

Шаг 1. Выгрузите базу

Через phpMyAdmin

  1. Нажмите на имя нужной базы в левой колонке. Откроется список её таблиц.
  2. Перейдите на вкладку Export.
  3. Выберите способ:
    • Quick выгружает всю базу со стандартными настройками. Подходит почти всегда.
    • Custom позволяет отметить отдельные таблицы, выбрать кодировку или включить сжатие.
  4. В поле Format оставьте SQL, если файл потом будет загружаться в MySQL.
  5. Нажмите Export (в некоторых версиях кнопка называется Go). Браузер скачает файл .sql.

Совет: для большой базы выберите Custom и сжатие gzipped или zipped. Архив получается в несколько раз меньше, его быстрее скачать и затем загрузить.

Из командной строки

Если на старом сервере есть доступ по SSH, эта команда запросит пароль и сразу сохранит сжатую копию:

mysqldump -u old_user -p old_database | gzip > database.sql.gz

Каким бы способом Вы ни выгружали базу, откройте начало файла в текстовом редакторе и убедитесь, что в нём есть строки CREATE TABLE и INSERT, а не страница с ошибкой.

Шаг 2. Подготовьте базу назначения

Импорт выполняется в базу, которая уже есть в аккаунте. Если её ещё нет, откройте в cPanel MySQL Databases, создайте базу и пользователя и дайте ему все права (ALL PRIVILEGES) на эту базу. Подробно это описано в статье как создать базу данных MySQL в cPanel. Запишите имя базы, имя пользователя и пароль точно так, как их показывает cPanel, вместе с префиксом аккаунта.

База должна быть пустой. Если Вы загружаете данные в базу, где уже есть таблицы, сначала сделайте её экспорт на всякий случай.

Шаг 3. Импортируйте файл

Через phpMyAdmin

  1. Выберите слева базу, в которую нужно загрузить данные.
  2. Откройте вкладку Import.
  3. Нажмите Choose File (или Browse) и укажите файл на компьютере. Подходят .sql, а также архивы .sql.gz и .sql.zip.
  4. Формат оставьте SQL, остальные параметры без особой причины не меняйте.
  5. Прокрутите страницу вниз и нажмите Import. Дождитесь зелёного сообщения об успешном выполнении и только потом закрывайте вкладку.

Если файл слишком большой для браузера

Рядом с полем выбора файла phpMyAdmin пишет максимально допустимый размер. Если файл больше, попробуйте по порядку:

  1. Сожмите файл и повторите попытку: архив .sql.gz в несколько раз меньше.
  2. Импортируйте по SSH или через Terminal в cPanel (см. подключение к серверу по SSH). Сначала загрузите файл в аккаунт, затем выполните:
    gunzip < database.sql.gz | mysql -u cpuser_dbuser -p cpuser_dbname
  3. Обратитесь в поддержку. Загрузите файл через File Manager или FTP и создайте тикет, указав путь к файлу и базу, в которую его нужно импортировать.

Шаг 4. Обновите настройки сайта

После переноса в конфигурационном файле сайта остаются старые реквизиты. Замените имя базы, пользователя и пароль на новые, а в качестве хоста укажите localhost. В WordPress это файл wp-config.php:

define( 'DB_NAME', 'cpuser_dbname' );
define( 'DB_USER', 'cpuser_dbuser' );
define( 'DB_PASSWORD', 'Ваш пароль' );
define( 'DB_HOST', 'localhost' );

Где хранят эти значения Joomla, OpenCart, PrestaShop и другие платформы, смотрите в статье о данных для подключения к MySQL.

Шаг 5. Проверьте сайт до смены DNS

Сайт на новом сервере можно открыть ещё до того, как домен будет направлен туда: для этого правится файл hosts на Вашем компьютере, как описано в статье как открыть сайт до делегирования домена. Проверьте главную, несколько внутренних страниц, вход в админку и формы. Если при переезде меняется и сам домен, учтите, что WordPress хранит старый адрес ещё и в базе данных, и его тоже нужно заменить.

Типичные ошибки и что они означают

Ошибка или признакПричинаЧто делать
#1046 No database selectedПеред импортом слева не выбрана базаВыберите базу и повторите импорт с её вкладки Import
#1050 Table already existsВ базе назначения уже есть таблицы с такими же именамиСделайте экспорт текущих данных на всякий случай, затем очистите базу или возьмите новую и повторите импорт
#1044 Access denied на CREATE DATABASEВ файле есть команда создать или выбрать базу с другим именемУдалите из файла строки CREATE DATABASE и USE (или выгрузите базу заново без них) и импортируйте в выбранную базу
Unknown collation: 'utf8mb4_0900_ai_ci'Дамп сделан на MySQL 8, а на новом месте работает версия сервера баз данных, которая не знает такой сортировкиЗамените по всему файлу utf8mb4_0900_ai_ci на utf8mb4_unicode_ci в редакторе, который справляется с большими файлами, и повторите импорт в пустую базу
Access denied; you need (at least one of) the SUPER privilege(s)У представлений, триггеров или процедур в файле указан DEFINER с пользователем старого сервераУдалите из файла фрагменты DEFINER=`...`@`...` или выгрузите базу заново без definer
Вопросительные знаки или непонятные символы вместо буквПри экспорте и импорте использовались разные кодировкиВыгрузите базу заново в utf8mb4 и импортируйте с той же настройкой
«Error establishing a database connection»В конфигурационном файле неверные реквизиты или у пользователя нет прав на базуСверьте имена и пароль с cPanel буква за буквой (данные для подключения) и проверьте, что пользователь добавлен к базе

Полезные статьи

Помог ли вам данный ответ?

Нужна помощь? Позвоните нам +373 795-800-80