Как перенести базу данных с одного сервера на другой

Перенос базы данных MySQL можно разделить на 4 этапа:

  1. Создание дампа базы.
  2. Перенос дампа на новый сервер.
  3. Создание “пустой” БД на новом сервере и восстановление дампа в неё.
  4. Настройка прав доступа к БД.

Перед началом работы с MySQL убедитесь, что на сервере запущен демон mysql.

Как сделать дамп базы данных

Для создания дампа БД можно воспользоваться следующей командой:

mysqldump -u root -p -f myolddb > /home/username/mydbdump.sql

Затем вводим пароль пользователя:

mypassword

Рассмотрим первую команду. Для создания дампа, мы:

  • воспользовались утилитой mysqldump от имени пользователя MySQL root (ключ –u) (не путать с суперпользователем сервера root);
  • задали проверку пароля (ключ –p);
  • “попросили” создавать дамп даже при возникновении ошибок MySQL (ключ –f);
  • указали имя БД (myolddb);
  • указали директорию, в которой должен быть сохранён дамп БД (/home/username/);
  • указали имя самого дампа (mydbdump.sql).

Выбрать VPS для размещения базы данных

Перенос базы данных на новый сервер

Следующим шагом является перенос дампа на новый сервер. Для этого можно воспользоваться ftp-клиентом, подключиться к старому серверу, скачать дамп на домашний компьютер, и, подключившись к новому серверу, загрузить дамп на него. Другим способом переноса дампа, для которого не нужно выполнять промежуточное копирование на домашнем компьютере, является использование команды wget на новом сервере, с указанием ссылки на старый сервер (например, http://oldserver.com/mydbdump.sql). Однако для использования данной команды необходимо, чтобы на старом сервере был запущен веб-сервер, а файл дампа помещён в корневую директорию хоста oldserver.com (например, /var/www/html).

После того как дамп перенесён, его нужно восстановить на новом сервере. Для начала необходимо войти в MySQL и создать “пустую” БД.

mysql –u root –p
mypassword
CREATE DATABASE mynewdb;
quit

Восстановление дампа базы данных

Далее восстанавливаем дамп в только что созданную БД.

mysql -u root -p -f mynewdb < /home/username/mydbdump.sql
mypassword

Настройка прав доступа к БД

Наконец, необходимо настроить права доступа к БД, а именно определить, какой пользователь будет иметь доступ к данной БД. Предположим, Вы устанавливаете Wordpress и хотите, чтобы доступ к БД имел пользователь под именем wordpress. В таком случае, нужно войти в MySQL как root при помощи команды:

mysql –u root –p

и выполнить следующие команды:

GRANT ALL ON mynewdb.* to wordpress@localhost identified by 'wordpresspassword';
FLUSH PRIVILEGES;
quit

Данная команда не только настраивает права доступа к БД, но также создаёт пользователя БД (например, wordpress) и устанавливает для него пароль (wordpresspassword).

Вы можете проверить корректность создания пользователя:

mysql –u wordpress –p
wordpresspassword
SHOW DATABASES;

При успешной настройке прав доступа Вы увидите следующий текст:

Mysql dump.png