Репликация данных - это процесс копирования ваших данных на несколько серверов для повышения доступности данных и повышения надежности и производительности приложения. В MySQL При репликации данные копируются из базы данных с главного сервера на другие узлы в режиме реального времени для обеспечения согласованности данных, а также для обеспечения резервного копирования и избыточности.
В этом руководстве мы покажем, как вы можете настроить MySQL (Мастер-Раб) репликация в Распределения на основе RHEL Такие как CentOS, Fedora, Рокки Линукс, и AlmaLinux.
Итак, вот наша MySQL настройка лаборатории репликации.
Мастер MySQL - 10.128.0.14. Подчиненный MySQL - 10.128.15.211.
Давайте начнем…
Мы начнем с установки MySQL база данных как по владелец и раб серверы.
$ sudo dnf install @mysql.
После завершения установки запустите сервер базы данных.
$ sudo systemctl start mysqld.
Затем включите запуск при запуске системы или при перезагрузке.
$ sudo systemctl включить mysqld.
После этого убедитесь, что MySQL сервер базы данных работает, как показано:
$ sudo systemctl status mysqld.
Следующим шагом будет закрепление MySQL база данных как по владелец и раб серверы. Это связано с тем, что настройки по умолчанию небезопасны и содержат некоторые лазейки, которые могут легко использоваться хакерами.
Итак, чтобы укрепить MySQL, выполните команду:
$ sudo mysql_secure_installation.
Сначала вам потребуется установить MySQL пароль root. Убедитесь, что вы предоставили надежный корневой пароль, желательно из более чем 8 символов, которые представляют собой сочетание прописных, строчных, специальных и цифровых символов.
Для остальных запросов введите 'Y'
чтобы настроить сервер базы данных на рекомендуемые параметры.
После того, как вы закончите установку и упрочнение MySQL на главном и подчиненном узлах следующее - настроить главный узел.
Следующим шагом является настройка Владелец узел и предоставить раб узел доступа к нему. Во-первых, нам нужно отредактировать mysql-server.cnf конфигурационный файл.
$ sudo vim /etc/my.cnf.d/mysql-server.cnf.
Добавьте следующие строки под [mysqld]
раздел.
адрес привязки = 10.128.0.14. идентификатор сервера = 1. log_bin = mysql-bin.
После этого сохраните изменения и выйдите. Затем перезапустите MySQL сервер.
$ sudo sysemctl перезапустить mysqld.
Далее войдите в MySQL оболочка.
$ sudo mysql -u root -p.
Выполните следующие команды, чтобы создать пользователя базы данных, который будет использоваться для связывания ведущего и ведомого устройства для репликации.
mysql> СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'replica'@'10.128.15.211' ИДЕНТИФИЦИРОВАНО '[электронная почта защищена]'; mysql> ПРЕДОСТАВЛЯТЬ ПОДЧИНЕННУЮ РЕПЛИКАЦИЮ НА *. * TO 'replica'@'10.128.15.211';
Примените изменения и выйдите из MySQL сервер.
mysql> ПРИВИЛЕГИИ ПРОМЫВКИ; mysql> ВЫХОД;
Проверьте статус мастера.
mysql> ПОКАЗАТЬ МАСТЕР-СТАТУС \ G.
Обратите внимание на имя файла и позицию. Это понадобится вам позже при настройке ведомого устройства для репликации. В нашем случае у нас есть имя файла как mysql-bin.000001
и положение 1232.
Теперь вернитесь к узлу Slave. Еще раз отредактируйте mysql-server.cnf конфигурационный файл.
$ sudo vim /etc/my.cnf.d/mysql-server.cnf.
Как и раньше, вставьте эти строки под [mysqld]
раздел. Измените IP-адрес, чтобы он соответствовал IP-адресу ведомого устройства. Также назначьте другой идентификатор сервера. Здесь мы присвоили ему значение 2.
адрес привязки = 10.128.15.211. идентификатор сервера = 2. log_bin = mysql-bin.
Сохраните изменения и выйдите из файла. Затем перезапустите сервер базы данных.
$ sudo systemctl перезапустить mysqld.
Чтобы настроить Раб узел для репликации с главного узла, войдите на сервер MySQL ведомого.
$ sudo mysql -u root -p.
Прежде всего остановите потоки репликации:
mysql> STOP SLAVE;
Затем выполните следующую команду, чтобы настроить подчиненный узел для репликации баз данных с главного.
mysql> ИЗМЕНИТЬ МАСТЕРА НА MASTER_HOST = '10 .128.0.14 ', MASTER_USER =' реплика ', MASTER_PASSWORD ='[электронная почта защищена]', MASTER_LOG_FILE =' mysql-bin.000001 ', MASTER_LOG_POS = 1232;
Обратите внимание, что MASTER_LOG_FILE и MASTER_LOG_POS флаги соответствуют файлу и Должность ценности из Владелец узел в конце шага 1.
В МАСТЕР_ХОСТ, MASTER_USER, и ОСНОВНОЙ ПАРОЛЬ соответствуют главному IP-адресу, пользователю репликации и паролю пользователя репликации соответственно.
Затем запустите потоки подчиненной репликации:
mysql> НАЧАТЬ ПОДЧИНЕННЫЙ;
Теперь, чтобы проверить, работает ли репликация между главным и подчиненным узлами, войдите на сервер базы данных MySQL на главном узле:
$ sudo mysql -u root -p.
Создайте тестовую базу данных. Здесь наша тестовая база данных называется replication_db.
mysql> СОЗДАТЬ БАЗУ ДАННЫХ replication_db;
Проверьте наличие базы данных.
mysql> ПОКАЗАТЬ БАЗЫ ДАННЫХ;
Теперь перейдите к подчиненному узлу, войдите на сервер MySQL и убедитесь, что replication_db база данных присутствует. Из вывода ниже мы видим, что база данных присутствует. Это подтверждение того, что репликация произошла от ведущего к ведомому узлу.
mysql> ПОКАЗАТЬ БАЗЫ ДАННЫХ;
Вот и все, мы успешно продемонстрировали, как можно создать MySQL Модель репликации главный-подчиненный, которая может реплицировать базы данных с главного узла на подчиненный узел.