Как настроить репликацию Master-Slave MySQL на RHEL 8
Репликация MySQL — это процесс, при котором данные с одного сервера автоматически копируются или реплицируются на другой сервер резервного копирования в режиме реального времени. Репликация обеспечивает избыточность и отказоустойчивость, а также дает пользователю уверенность в том, что даже после сбоя на главном сервере данные все равно можно восстановить.
В этом руководстве вы узнаете, как настроить репликацию master-slave MySQL в RHEL 8 Linux.
Предварительные условия
При настройке у нас будет два сервера под управлением RHEL 8 со следующими IP-адресами.
Master = 173.82.120.14
Slave = 173.82.115.165
Давайте теперь продолжим и посмотрим, как мы можем настроить настройку репликации MySQL Master-Slave в RHEL 8 Linux.
Шаг 1. Установите MySQL на главный и подчиненный сервер.
1. Последняя версия MySQL 8.x уже включена в репозиторий по умолчанию RHEL 8, и вы можете установить ее, используя следующую команду: команда ням.
yum -y install @mysql
Шаг 2. Защитите MySQL на главном и подчиненном сервере
После установки вам следует запустить только что установленную службу MySQL и настроить ее автоматический запуск при каждом запуске сервера. Поэтому используйте следующую команду.
systemctl enable mysqld
systemctl start mysqld
Затем вам необходимо защитить установку MySQL, запустив сценарий безопасности, который включает в себя несколько операций, связанных с безопасностью, таких как установка пароля root, удаление анонимных пользователей, запрет удаленного входа в систему root, удаление тестовой базы данных и перезагрузка привилегий.
mysql_secure_installation
Продолжите выполнять оставшуюся часть запроса и ответьте Да
на все вопросы, поэтому настройте сервер в соответствии с лучшими практиками безопасности.
Шаг 3. Настройка главного сервера MySQL
Чтобы начать настройку Главного сервера, откройте файл конфигурации MySQL, введя следующую команду.
sudo vim /etc/my.cnf
В раздел mysqld
добавьте строки, как показано ниже.
bind-address =173.82.120.14
server-id = 1
log_bin =mysql-bin
Наконец, перезапустите службу MySQL.
sudo systemctl restart mysqld
Теперь мы собираемся создать пользователя репликации. Поэтому войдите на главный сервер MySQL как пользователь root и введите пароль.
sudo mysql -u root -p
Теперь выполните следующие команды, чтобы создать пользователя-реплику и в то же время предоставить этому пользователю подчиненный доступ. Не забудьте использовать IP-адрес вашего компьютера.
mysql> CREATE USER 'replica'@'173.82.115.165' IDENTIFIED BY 'strong_password';
mysql> GRANT REPLICATION SLAVE ON *.*TO 'replica'@'173.82.115.165';
Теперь вы собираетесь ввести следующую команду, которая выведет имя и позицию двоичного файла.
mysql> SHOW MASTER STATUS\G
Не забудьте записать полученное имя файла msql-bin.000002
и его позицию 939
.
Шаг 4. Настройка подчиненного сервера MySQL
Как и в процессе настройки ведущего устройства, вам следует внести следующие изменения в файл конфигурации ведомого устройства mysql.
sudo vim /etc/my.cnf
Добавьте следующие строки в файл конфигурации в раздел mysqld
.
bind-address =173.82.115.165
server-id = 2
log_bin =mysql-bin
Перезапустите сервер.
sudo systemctl restart mysqld
Теперь следующим шагом будет настройка подчиненного сервера для репликации с главного сервера. Войдите на сервер MySQL.
sudo mysql -u root -p
Во-первых, остановите потоки репликации.
mysql> STOP SLAVE;
Теперь выполните следующий запрос, который настроит подчиненное устройство для репликации с главного сервера.
mysql> CHANGE MASTER TO
-> MASTER_HOST='173.82.120.14' ,
-> MASTER_USER='replica' ,
-> MASTER_PASSWORD='Jupiter@2030' ,
-> MASTER_LOG_FILE='mysql-bin.000002' ,
-> MASTER_LOG_POS=939;
Убедитесь, что вы используете правильное имя пользователя и пароль IP. Также используйте имя файла и позицию, полученные с главного сервера.
Наконец, введите следующую команду, чтобы запустить подчиненные потоки.
mysql> START SLAVE;
Шаг 5. Тестирование репликации Master-Slave MySQL
На этом этапе вы завершили настройку главного и подчиненного серверов. Теперь нам нужно проверить, работает ли конфигурация и возможна ли репликация.
Для этого перейдите на главный сервер и войдите на сервер базы данных MySQL.
sudo mysql -u root -p
Создайте образец базы данных.
mysql> CREATE DATABASE replication_database;
Теперь перейдите на Подчиненный сервер и снова войдите на сервер базы данных MySQL.
sudo mysql -u root -p
Теперь перечислите все базы данных, используя следующую команду.
mysql> SHOW DATABASES;
Если вы видите созданную базу данных, значит, настройка MySQL Master-Slave Replication работает.
Заключение
Репликация — довольно простой процесс, который можно легко выполнить. В этом руководстве вы узнали, как создать репликацию главного сервера MySQL на подчиненный в RHEL 8 Linux.