Поиск по сайту:

Как настроить репликацию 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.