ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Как перенести базу данных MySQL между двумя серверами?

Как перенести базу данных MySQL между двумя серверами?

Миграция базы данных MySQL обычно требует всего лишь нескольких простых шагов, но может занять довольно много времени, в зависимости от объема данных, которые вы хотите перенести.

В следующих шагах вы узнаете, как экспортировать базу данных MySQL со старого сервера, защитить ее, скопировать на новый сервер, успешно импортировать и убедиться в наличии данных.

 

Экспорт базы данных MySQL в файл дампа

Oracle предоставляет утилиту с именем mysqldump, которая позволяет легко экспортировать структуру базы данных и данные в файл дампа SQL. Используйте следующую команду:

mysqldump -u root -p --opt [database name] > [database name].sql

 

Несколько заметок:

 

Защитите файл резервной копии

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

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

 

zip --encrypt dump.zip db.sql

 

Вам будет предложено ввести пароль до начала сжатия.

 

Перенести файл резервной копии

Теперь, когда у нас есть зашифрованный файл дампа, давайте перенесем его по сети на новый сервер, используя SCP:

scp /path/to/source-file user@host:/path/to/destination-folder/

 

Импортируйте дамп MySQL на новый сервер

Теперь, когда у нас есть файл резервной копии на новом сервере, давайте расшифруем и распакуем его:

unzip -P your-password dump.zip

 

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

mysql -u root -p newdatabase < /path/to/newdatabase.sql

 

Проверить импортированные данные на новом сервере

Теперь, когда у нас есть база данных, импортированная на новый сервер, нам нужен способ убедиться, что данные действительно есть, и мы ничего не потеряли.
Мы рекомендуем начать с выполнения этого запроса как для старой, так и для новой базы данных и сравнить результаты.
Запрос подсчитает количество строк во всех таблицах, что обеспечит указание количества данных в обеих базах данных.

SELECT
    TABLE_NAME,
    TABLE_ROWS
FROM
    `information_schema`.`tables`
WHERE
    `table_schema` = 'YOUR_DB_NAME';

 

Кроме того, мы рекомендуем проверять записи MIN и MAX столбцов в таблицах, чтобы убедиться, что действительными являются сами данные, а не только объем данных.
Еще, перед переносом самого приложения мы рекомендуем перенаправить один экземпляр приложения в новую базу данных и убедиться, что все работает правильно.

 

Еще один вариант экспорта и импорта

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

mysqldump -u root -pPassword --all-databases | ssh user@new_host.host.com 'cat - | mysql -u root -pPassword'

 

Важные заметки

Наслаждайтесь вашим новым сервером!

Exit mobile version