MySQL Group Replication Demo
Оглавление:
- Предпосылки
- Установите MySQL
- Настройте главный сервер
- Настройте подчиненный сервер
- Проверьте конфигурацию
- Вывод
Репликация MySQL - это процесс, который позволяет автоматически копировать данные с одного сервера базы данных на один или несколько серверов.
MySQL поддерживает ряд топологий репликации, при этом топология Master / Slave является одной из наиболее известных топологий, в которой один сервер базы данных выступает в качестве главного, а один или несколько серверов выступают в качестве ведомых. По умолчанию репликация выполняется асинхронно, когда ведущий отправляет события, описывающие изменения базы данных, в свой двоичный журнал, а ведомые запрашивают события, когда они готовы.
В этом руководстве мы расскажем, как настроить репликацию MySQL Master / Slave с одним главным и одним подчиненным сервером в CentOS 7. Те же шаги применимы к MariaDB.
Этот тип топологии репликации лучше всего подходит для развертывания реплик чтения для масштабирования чтения, оперативного резервного копирования баз данных для аварийного восстановления и аналитических заданий.
Предпосылки
В этом примере мы предполагаем, что у вас есть два сервера под управлением CentOS 7, которые могут взаимодействовать друг с другом через частную сеть. Если ваш хостинг-провайдер не предоставляет частные IP-адреса, вы можете использовать публичные IP-адреса и настроить брандмауэр так, чтобы трафик на порт 3306 передавался только из надежных источников.
Серверы в этом примере имеют следующие IP-адреса:
Master IP: 192.168.121.59 Slave IP: 192.168.121.14
Установите MySQL
По умолчанию репозитории CentOS 7 не содержат пакетов MySQL, поэтому мы установим MySQL из их официального репозитория Yum. Чтобы избежать каких-либо проблем, мы установим одну и ту же версию MySQL 5.7 на оба сервера.
Установите MySQL на главный и подчиненный серверы:
sudo yum localinstall
sudo yum install mysql-community-server
После завершения установки запустите службу MySQL и включите ее автоматический запуск при загрузке с помощью:
sudo systemctl enable mysqld
sudo systemctl start mysqld
Когда сервер MySQL запускается в первый раз, для корневого пользователя MySQL генерируется временный пароль. Чтобы найти пароль, используйте следующую команду grep:
sudo grep 'temporary password' /var/log/mysqld.log
Запустите команду
mysql_secure_installation
чтобы установить новый пароль root и повысить безопасность экземпляра MySQL:
mysql_secure_installation
Введите временный пароль root и ответьте
Y
(да) на все вопросы.
Настройте главный сервер
Сначала мы настроим главный сервер MySQL и внесем следующие изменения:
- Настройте сервер MySQL для прослушивания частного IP-адреса. Установите уникальный идентификатор сервера. Включите двоичное ведение журнала.
Для этого откройте файл конфигурации MySQL и добавьте следующие строки в
раздел:
sudo nano /etc/my.cnf
мастер: /etc/my.cnf
bind-address = 192.168.121.59 server-id = 1 log_bin = mysql-bin
После этого перезапустите службу MySQL, чтобы изменения вступили в силу.
sudo systemctl restart mysqld
Следующим шагом является создание нового пользователя репликации. Войдите на сервер MySQL от имени пользователя root:
mysql -uroot -p
В командной строке MySQL выполните следующие SQL-запросы, которые создадут пользователя
replica
и предоставят пользователю привилегию
REPLICATION SLAVE
:
CREATE USER 'replica'@'192.168.121.14' IDENTIFIED BY 'strong_password';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.121.14';
Убедитесь, что вы изменили IP-адрес с вашего ведомого IP-адреса. Вы можете назвать пользователя, как вы хотите.
Находясь в приглашении MySQL, выполните следующую команду, которая выведет двоичное имя файла и положение.
SHOW MASTER STATUS\G
*************************** 1. row *************************** File: mysql-bin.000001 Position: 1427 Binlog_Do_DB: Binlog_Ignore_DB: Executed_Gtid_Set: 1 row in set (0.00 sec)
Обратите внимание на имя файла «mysql-bin.000001» и «1427». Эти значения понадобятся вам при настройке подчиненного сервера. Эти значения, вероятно, будут отличаться на вашем сервере.
Настройте подчиненный сервер
Как и в случае с главным сервером, мы внесем следующие изменения в подчиненный сервер:
- Настройте сервер MySQL для прослушивания на частном IPSet ID уникального сервера. Включите двоичное ведение журнала.
Откройте файл конфигурации MySQL и отредактируйте следующие строки:
sudo nano /etc/my.cnf
рабыня: /etc/my.cnf
bind-address = 192.168.121.14 server-id = 2 log_bin = mysql-bin
Перезапустите службу MySQL:
sudo systemctl restart mysqld
Следующим шагом является настройка параметров, которые подчиненный сервер будет использовать для подключения к главному серверу. Войдите в оболочку MySQL:
mysql -uroot -p
Сначала остановите подчиненные темы:
STOP SLAVE;
Выполните следующий запрос, который настроит подчиненное устройство для репликации мастера:
CHANGE MASTER TO
MASTER_HOST='192.168.121.59',
MASTER_USER='replica',
MASTER_PASSWORD='strong_password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=1427;
Убедитесь, что вы используете правильный IP-адрес, имя пользователя и пароль. Имя и позиция файла журнала должны совпадать со значениями, которые вы получили от главного сервера.
После этого запустите подчиненные темы.
Проверьте конфигурацию
На этом этапе у вас должна быть работающая настройка репликации Master / Slave.
Чтобы убедиться, что все работает должным образом, мы создадим новую базу данных на главном сервере:
mysql -uroot -p
CREATE DATABASE replicatest;
Войдите в подчиненную оболочку MySQL:
mysql -uroot -p
Выполните следующую команду, чтобы получить список всех баз данных:
SHOW DATABASES;
Вы заметите, что база данных, которую вы создали на главном сервере, реплицируется на ведомое устройство:
+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | replicatest | | sys | +--------------------+ 5 rows in set (0.00 sec)
Вывод
В этом руководстве мы показали, как создать репликацию MySQL Master / Slave в CentOS 7.
Не стесняйтесь оставлять комментарии, если у вас есть какие-либо вопросы.
Сентос Мысль МариадбКак настроить мастер-пароль для ваших паролей, хранящихся в Firefox
Как настроить мастер-пароль для ваших паролей, хранящихся в Firefox.
Как настроить мастер mysql (mariadb)
В этом руководстве мы покажем вам, как настроить репликацию главного / подчиненного MariaDB с одним главным и одним подчиненным серверами в Debian 10. MariaDB - это стандартная реализация MySQL в Debian.
Как настроить мастер MySQL
Репликация MySQL - это процесс, который позволяет автоматически копировать данные с одного сервера базы данных на один или несколько серверов. В этом руководстве рассматривается базовый пример репликации MySQL Master / Slave с одним главным и одним подчиненным сервером в Ubuntu 18.04.