C O D E - I N F O . R U

Делаем полный дамп базы данных MySQL <wbr>в Ubuntu\Debian


Делаем дамп (backup) базы данных MySQL размером 300+ МБ, находящейся на удалённом хосте. Для примера, создадим бэкап базы данных игрового мира эмулятора игрового сервера World of Warcraft - CMaNGOS . Будем использовать терминал.
CMaNGOS - правильный бэкап базы данныхВ данном примере, мы будем делать бэкап базы данных игрового мира эмулятора сервера World of Warcraft - CMaNGOS, которая находится на удалённом хосте
(в нашем примере, вместо удалённого хоста используем гостевую операционную систему ubuntu-server 16.04 LTS в Oracle VirtualBOX).
(аналогично, рассмативаемым способом можно делать дампы памяти БД расположенных на локальном хосте)

Для получения дампа базы данных, используются:
терминал;
SSH протокол;
mysqldump - утилиту для создания дампов баз данных (обычно входит в комплект установленного MySQL пакета).

Для примера – будем делать бэкап базы данных эмулятора игрового сервера World of Warcraft – CMaNGOS. Её размер: 359,3 МБ.

Итак, ситуация такая:

1) В операционной системе Ubuntu 16.04 (далее - основная ОС) работает виртуальная машина Oracle VirtualBOX. Также, установлен ssh клиент (обычно установлен по умолчанию) и MySQL.

2) В виртуальной машине, работает операционная система Ubuntu-server (далее – гостевая ОС) в которой, в свою очередь работает эмулятор игрового сервера World of Warcraft – CMaNGOS, а также MySQL server с базой данных (далее БД) игрового мира, название которой "World".

Немного о конфигурации используемой гостевой ОС: (удалённого хоста)

IP адрес: 192.168.100.28
Имя пользователя гостевой ОС: "mangos"
Пароль: 12345

Имя пользователя сервера MySQL (содержащего БД "World"): sql_user
Пароль: 54321
Порт MySQL: 3306 (обычно, по умолчанию)

Также, в гостевой ОС установлен openssh-server. Если не установлен – устанавливаем:
sudo apt install openssh-server

чтобы включить ssh в автозагрузку выполните:
sudo systemctl enable sshd

чтобы убрать ssh из автозагрузки:
sudo systemctl disable sshd

Порт, на котором работает ssh в нашем случае: 2222
узнать\изменить, порт для ssh, можно открыв фаил конфигурации, по адресу: /etc/ssh/sshd_config



Используемая БД "World" разработана сообществом "project-silvermoon" и имеет размер 359,3 МБ
(обычно, данная БД упоминается сокращённо как - PSDB)
Наконец, начнём!

Задача:

Сделать бэкап базы данных "World" , которая находится на удалённом хосте (гостевой ОС), и сохранить в виде дампа, в основную ОС используя SSH (Secure Shell) протокол.

Решение:
Запускаем терминал в основной ОС и приступаем!

1. Переходим в папку, в которой хотим сохранить дамп

2. Вводим следующее:
ssh -p 2222 mangos@192.168.100.28 mysqldump -u sql_user -p World > World_backup.sql
где,
2222 – порт, на который используется ssh-сервером;
mangos@192.168.100.28 – имя пользователя гостевой ОС и ip адрес гостевой ОС;
mysqldump – утилита для создания дампов БД (обычно входит в комплект установленного MySQL пакета);
sql_user – имя пользователя;
World – имя БД дамп которой мы делаем;
World_backup.sql – имя файла дампа, который мы в итоге получим.

3. После того, как ма ввели вышеуказанное, сначала у нас запросят ввести пароль гостевой ОС (то есть удалённой машины).
В данном случае это: 12345
Вводим и жмём "Enter". 

4. Теперь запрашивается пароль, указанного в строке пользователя MySQL. В данном случае пароль позльзователя sql_user – 54321.
Вводим: 54321 и жмём "Enter".

Вот и всё!
Если всё прошло хорошо, в вашей текущей папке основной ОС появится файл с именем: World_backup.sql, с помощью которого можно будет при необходимости – восстановить базу данных "World".

Таким образом, можно делать дампы БД с любых удалённых хостов, настроенных соответсвующим (подобным) образом, а также дампы БД расположенных на локальном хосте.

Восстановить БД из полученного дампа – очень просто.

1) Разместить файл дампа на хост, с установленным сервером MySQL, который собственно будет содержать нашу востанавливаемую БД.
2) Перейти в папку, содержащую наш дамп БД.
3) И выполняем:
mysql -u root -p World < World_backup.sql

где,
root – имя пользователя MySQL;
World – база данных (пустая или нет, но должна быть в наличии);
World_backup.sql – наш фаил дампа.

4) После ввода данной команды, будет запрошен пароль пользователя MySQL. Вводим, ждём, и если всё пройдёт хорошо – никаких дополнительных сообщений мы в терминале не увидим и БД будет полностью востановлена!

Техническая


Пятница 20 июля 2018

[Просмотров: 531]

Источник: code-info.ru