Труд избавляет человека от трех главных зол — скуки, порока и нужды (Ф. Вольтер).

Как настроить репликацию MySQL на CentOS

3 мин для чтения
FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
28 октября 2016
Как настроить репликацию MySQL на CentOS
На этом уроке мы покажем вам, как настроить основную репликацию MySQL на двух серверах CentOS 7, но те же самые шаги должны работать на всех системах на основе RPM. Мы будем использовать два тестовых CentOS 7 виртуальных сервера для этого урока со следующими IP – адресами:


MASTER: 192.168.1.2  SLAVE: 192.168.1.3

Мастер-сервер:

Вход на мастер-сервер в качестве пользователя root

ssh root@IP_Address

 

и установить сервер MySQL, если он еще не установлен

yum install mysql-server mysql

 

Запустите сервер MySQL и добавьте его в автозагрузку

systemctl start mysql
systemctl enable mysql

 

Затем откройте файл конфигурации MySQL с помощью текстового редактора и добавьте следующие строки в файл

vi /etc/my.cnf

 

server-id = 1
binlog-do-db=database
relay-log = mysql-relay-bin
relay-log-index = mysql-relay-bin.index
log-bin = mysql-bin

 

Не забудьте заменить ” database” на фактическое имя базы данных, которую вы хотите скопировать на подчиненный сервер.

Сохраните файл конфигурации и перезапустите сервер MySQL для того, чтобы изменения вступили в силу

systemctl restart mysql

 

Войдите на сервер MySQL в качестве пользователя root и создайте пользователя, который будет использоваться ведомым сервером

mysql -u root -p

 

mysql> GRANT REPLICATION SLAVE ON *.* TO 'slaveuser'@'%' IDENTIFIED BY 'PASSWORD'
mysql> FLUSH PRIVILEGES;
mysql> FLUSH TABLES WITH READ LOCK;
mysql> SHOW MASTER STATUS;
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |      245 | database     |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

mysql> exit

 

 

Нам потребуются координаты master, которые собираются использовать для подчиненного сервера, поэтому запишите их.

Файл: MySQL-bin.000001 Позиция: 245

Заменить ‘ PASSWORD ‘ с фактическим сильным паролем.

Теперь, если база данных, которую вы хотите перенести, является не пустой, создайте дамп из базы данных

mysqldump -u root -p --master-data database > /root/database.sql

 

и передайте файл дампа подчиненному серверу

rsync -Waq -e ssh /root/database.sql 192.168.1.3:/root

 

Подчиненный сервер:

Следующий шаг заключается в настройке подчиненного сервера. Вход на подчиненный сервер через SSH в качестве пользователя root и установите сервер MySQL, как мы делали на главном сервере.

После установки и запуска сервера MySQL, откройте конфигурационный файл и добавьте следующие строки:

vi /etc/my.cnf

 

server-id = 2
master-host=191.168.1.2
master-connect-retry=60
master-user=slaveuser
master-password=PASSWORD
replicate-do-db=database
relay-log = mysql-relay-bin
log-bin = mysql-bin

 

Сохраните файл и перезапустите сервер MySQL после изменения, чтобы настройки обновились.

systemctl restart mysql

 

Импортируйте файл дампа MySQL, который мы создали на главном сервере

mysql -u root -p < /root/database.sql

 

Вход в MySQL как пользователь root, остановить slave и настройте его

mysql -u root -p

 

mysql> slave stop;
mysql> CHANGE MASTER TO MASTER_HOST='123.456.789.1', MASTER_USER='slaveuser', MASTER_PASSWORD='PASSWORD', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=245;
mysql> slave start;

 

Используйте имя пользователя MySQL и пароль, который мы создали на главном сервере.

Вы можете проверить состояние ведомого устройства, выполнив следующую команду MySQL:

mysql> show slave status;

 

*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 123.456.789.1
                  Master_User: slaveuser
                  Master_Port: 3306
              Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: database

 

Если “Slave_IO_State” сообщает “Ожидание master, чтобы отправить событие’, репликация успешно.

Вот и все. Это так просто. Если вам нужна дополнительная информация о том, как настроить конфигурацию мастер репликации вы можете найти его на официальном сайте MySQL.

Как настроить репликацию MySQL на CentOS

PS. Если вам понравился этот пост, пожалуйста, поделитесь им с друзьями в социальных сетях с помощью кнопок на левой стороне поста или просто оставьте комментарий ниже. Заранее благодарю.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Просмотров: 105

Если статья понравилась, то поделитесь ей в социальных сетях:

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

Войти с помощью: 

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

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close