MySQL репликация Master-Slave используется для обеспечения отказоустойчивости приложений и позволяет распределить нагрузку на базу данных между несколькими серверами.
Настроим репликации базы данных на примере из 2 серверов:
1. Master-server, 192.168.100.1
2. Slave-server, 192.168.100.2

Часть 1. Настройка Master-server для репликации базы данных.

1.Откроем для редактирования файл конфигурации базы данных командой:

sudo nano /etc/mysql/my.cnf
#адрес нашего master-server
bind-address = 192.168.100.1

# ID сервера, мастер - 1
server-id = 1

# путь к log-bin
log_bin = /var/log/mysql/mysql-bin.log

# название базы данных, которая будет реплицироваться
binlog_do_db = ithelp21ru_db

2. Перезапускаем службу Mysql:

sudo service mysqld restart

3. Подключаемся к БД и создаем пользователя replication, под которым будет происходить репликация.

mysql -u root -p
GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%' IDENTIFIED BY 'password_user_replication';
FLUSH PRIVILEGES;

4. Блокируем все таблицы базы данных от изменений:

USE ithelp21ru_db;
FLUSH TABLES WITH READ LOCK;

5. Вводим команду для просмотра статуса мастер:

SHOW MASTER STATUS;

Вывод примерный в табличном виде:

File: mysql-bin.000001
Position: 72
Binlog_Do_DB: ithelp21ru_db
Binlog_Ignore_DB:

Запомним данные значения, для дальнейшей настройки.

Часть 2. Дамп базы данных.

1. Переносим базу данных в новое окно с помощью mysqldump:

mysql -u root -p
mysqldump -u root -p --opt ithelp21ru_db > ithelp21ru_db.sql

2.снова входим в БД и разблокируем базу:

mysql -u root -p

USE ithelp21ru_db;
UNLOCK TABLES;
QUIT;
Часть 3. Настройка Slave-server для репликации базы данных.

1.Откроем для редактирования файл конфигурации базы данных командой:

sudo nano /etc/mysql/my.cnf

#адрес slave-server
bind-address = 192.168.100.2

# ID сервера, слейв - 2
server-id = 2

# путь к log-bin и relay-log
log_bin = /var/log/mysql/mysql-bin.log
relay-log = /var/log/mysql/mysql-relay-bin.log

# название базы данных, которая будет реплицироваться
binlog_do_db = ithelp21ru_db

2. Перезапускаем службу Mysql:

sudo service mysqld restart

3. Настроим в консоли mysql:

mysql -u root -p

CHANGE MASTER TO MASTER_HOST='192.168.100.1', MASTER_USER='replication', MASTER_PASSWORD='password_user_replication',
MASTER_LOG_FILE = 'mysql-bin.000001', MASTER_LOG_POS = 72;

4. Активируем репликацию на slave-сервере:

START SLAVE;

смотрим состояние репликации командой:

SHOW SLAVE STATUS\G

в выводе ищем строки, которые говорят об успешном запуске репликации:

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.