ПОДГОТОВКА
Первым делом нужно убедиться, что и на старом, и на новом сервере установлена одинаковая версия MySQL с одинаковым дистрибутивом. Для этого в командной строке выполните:
mysql -V
После этого нужно убедиться, что на новом сервере хватает места для файла дампа старой базы и импортированной базы данных (например, используя команду df).
ЭКСПОРТИРУЕМ БАЗУ ДАННЫХ MYSQL В ФАЙЛ ДАМПА
Внимание! Не переносите каталог data на новый сервер и не меняйте внутреннюю структуру БД.
Сначала на старом сервере остановите службу 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/
Готово! Мы только что очень быстро и просто выполнили миграцию всех баз со старого сервера на новый.