Для перекачки данных с мастер-сервера на слейв в MySQL можно использовать репликацию.
Репликация в MySQL позволяет автоматически передавать и воспроизводить изменения базы данных с одного сервера (мастер-сервера) на другой (слейв). Это позволяет поддерживать резервную копию данных, увеличить доступность системы и распределить нагрузку.
Основные шаги для настройки репликации в MySQL:
1. Убедитесь, что на обоих серверах установлен MySQL с одинаковой версией.
2. На мастер-сервере отредактируйте файл настройки MySQL (обычно my.cnf или my.ini) и добавьте параметры для репликации:
[mysqld] log-bin=mysql-bin server-id=1
Параметр log-bin
включает бинарные логи, которые содержат записи всех транзакций базы данных. Параметр server-id
устанавливает уникальный идентификатор сервера.
3. Перезапустите мастер-сервер для применения изменений в конфигурации.
4. Создайте пользователя для репликации на мастер-сервере и предоставьте ему необходимые привилегии для копирования данных:
mysql> CREATE USER 'replication_user'@'slave_ip' IDENTIFIED BY 'password'; mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'slave_ip'; mysql> FLUSH PRIVILEGES;
Замените 'slave_ip'
на IP-адрес слейва и 'password'
на пароль для пользователя репликации.
5. Запустите команду SHOW MASTER STATUS;
на мастер-сервере и запишите значения File
и Position
. Это позволит слейву знать, с какой точки начать репликацию.
6. На слейве также отредактируйте файл настройки MySQL и добавьте параметры:
[mysqld] server-id=2
Параметр server-id
должен быть уникальным идентификатором слейва.
7. Перезапустите слейв-сервер для применения изменений в конфигурации.
8. Запустите команду для настройки репликации на слейве:
mysql> CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='replication_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='master_log_file', MASTER_LOG_POS=master_log_position; mysql> START SLAVE;
Замените 'master_ip'
на IP-адрес мастер-сервера, 'replication_user'
и 'password'
на данные созданного пользователя репликации, а 'master_log_file'
и 'master_log_position'
на значения, полученные из команды SHOW MASTER STATUS;
на мастер-сервере.
9. Дождитесь, пока слейв-сервер установит соединение с мастер-сервером и начнет процесс репликации. Вы можете проверить статус репликации с помощью команды SHOW SLAVE STATUSG;
Теперь изменения, внесенные на мастер-сервере, будут автоматически передаваться и воспроизводиться на слейв-сервере. Если на мастер-сервере возникнет сбой, слейв-сервер может стать новым мастером, чтобы поддерживать доступность системы.