Перенос или миграция базы данных MySQL или MariaDB между серверами обычно занимает всего несколько простых шагов. В этой статье мы расскажем про них, и вы сможете легко перенести данные со старого Linux сервера на новый, импортировать и выполнить проверку того что все прошло без ошибок. Поехали!
Подготовка
Первым делом нужно убедиться, что и на старом, и на новом сервере установлена одинаковая версия MySQL с одинаковым дистрибутивом. Для этого в командной строке выполните:
mysql -V
После этого нужно убедиться, что на новом сервере хватает места для файла дампа старой базы и импортированной базы данных (например, используя команду df).
Экспортируем базу данных MySQL в файл дампа
Сначала на старом сервере остановите службу mysql или mariadb, используя команду systemctl:
# systemctl stop mariadb ИЛИ # systemctl stop mysql
Затем сделайте дамп ваших баз MySQL с помощью команды mysqldump:
# mysqldump -u [user] -p --all-databases > all_databases.sql
Если база одна, то можно использовать команду:
# mysqldump -u root -p --opt [database name] > database_name.sql
Перенос дампа MySQL на новый сервер
Теперь используйте команду scp, чтобы перенести файл дампа на новый сервер. После подключения база будет перенесена на новый сервер.
# scp all_databases.sql user@merionet.ru:~/ [Все базы] # scp database_name.sql user@merionet.ru:~/ [Одна база]
Импорт файла дампа MySQL на новый сервер
После того как файл дампа был перенесен, нужно выполнить следующую команду для импорта всех баз данных в MySQL.
# mysql -u [user] -p --all-databases < all_databases.sql [All Databases] # mysql -u [user] -p newdatabase < database_name.sql [Singe Database]
Проверка импорта
После завершения импорта вы можете проверить базы данных на обоих серверах:
# mysql -u user -p # show databases;
Перенос баз данных и пользователей MySQL на новый сервер
Если нужно переместить все свои БД MySQL, пользователей, разрешения и структуру данных старого сервера на новый, то нужно использовать команду rsync. С ее помощью скопируется весь контент из каталога данных mysql или mariadb на новый сервер.
# rsync -avz /var/lib/mysql/* user@merionet.ru:/var/lib/mysql/
Как только передача завершится, вы можете установить владельца каталога данных mysql или mariadb для пользователя и группы mysql. Для того чтобы убедиться, что что все файлы были переданы можно выполнить просмотр каталога.
# chown mysql:mysql -R /var/lib/mysql/ # ls -l /var/lib/mysql/
Готово! Мы только что очень быстро и просто выполнили миграцию всех баз со старого сервера на новый.