Для обычного перемещения базы MySQL с одного сервера на другой вполне подойдет обычный mysqldump, но когда это продакшен сервер и база занимает больше 10Gb простой может длиться слишком долго. В таких случаях подойдет репликация Master-Slave.
Для начала на обоих серверах включаем bin-log. Не буду углубляться но этих настроек должно быть достаточно:
binlog-format = ROW
log-bin = /var/lib/mysql/mysql-updates/mysql-binlogs
expire_logs_days = 14
max_binlog_size = 1024M
Далее на Master добавляем пользователя с правами для репликации
CREATE USER 'replication'@'10.0.0.18' IDENTIFIED BY '123password';
GRANT REPLICATION SLAVE ON *.* TO 'replication'@'10.0.0.18';
FLUSH PRIVILEGES;
Делаем дамп необходимой базы с меткой позиции в bin-log
# mysqldump --add-drop-table --flush-logs --master-data=2 --single-transaction database_name | gzip --fast > database_name.sql.gz
копируем дамп на Slave-сервер, распаковываем его и заливаем в базу
# gzip -d database_name.sql.gz
# mysql database_name < database_name.sql
В настройках MySQL (файл my.cnf) в разделе [mysqld] добавляем параметр в котором укажем имя базы что мы будем реплицировать
replicate-do-db = database_name
и перезапускаем MySQL
Из дампа смотри имя bin-log файла и позицию
# cat database_name.sql | grep MASTER_LOG_POS
Далее на Slave в MySQL выполняем команды для настройки репликации
CHANGE MASTER TO MASTER_HOST='10.0.0.20', MASTER_USER='replication',MASTER_PASSWORD='123password', MASTER_LOG_FILE='mysql-binlogs.000267', MASTER_LOG_POS=125827306;
START SLAVE;
в параметрах передаем все необходимые значения.
После всех выполненных действий репликация должны начаться и базы должны быть идентичны.
Командой SHOW SLAVE STATUS\G можем посмотреть состояние Slave и последние ошибки связанные с репликацией.
После того как базы синхронизируются мы переводим Slave в режим Master
STOP SLAVE; CHANGE MASTER TO MASTER_HOST=''; RESET SLAVE;
Из конфига убираем replicate-do-db и перезапускаем MySQL.
Все, мы перенесли всю базу на новый сервер, в приложении необходимо всего навсего сменить настройки подключения у новой базе.