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.
PS. Если вам понравился этот пост, пожалуйста, поделитесь им с друзьями в социальных сетях с помощью кнопок на левой стороне поста или просто оставьте комментарий ниже. Заранее благодарю.
Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!
Спасибо! Ваша заявка принята
Спасибо! Ваша заявка принята