O'Reilly Webcast: MySQL Replication - Audit, Test & Verify
Оглавление:
- Предпосылки
- Установите MySQL
- Настройте главный сервер
- Настройте подчиненный сервер
- Проверьте конфигурацию
- Вывод
Репликация MySQL - это процесс, который позволяет автоматически копировать данные с одного сервера базы данных на один или несколько серверов.
MySQL поддерживает ряд топологий репликации, при этом топология Master / Slave является одной из наиболее известных топологий, в которой один сервер базы данных выступает в качестве главного, а один или несколько серверов выступают в качестве ведомых. По умолчанию репликация выполняется асинхронно, когда ведущий отправляет события, описывающие изменения базы данных, в свой двоичный журнал, а ведомые запрашивают события, когда они готовы.
В этом руководстве рассматривается базовый пример репликации MySQL Master / Slave с одним главным и одним подчиненным сервером в Ubuntu 18.04. Те же самые шаги применяются для MariaDB.
Этот тип топологии репликации лучше всего подходит для развертывания реплик чтения для масштабирования чтения, оперативного резервного копирования баз данных для аварийного восстановления и аналитических заданий.
Предпосылки
В этом примере предполагается, что у вас есть два сервера под управлением Ubuntu 18.04, которые могут взаимодействовать друг с другом через частную сеть. Если ваш хостинг-провайдер не предлагает частные IP-адреса, вы можете использовать общедоступные IP-адреса и настроить брандмауэр так, чтобы трафик на порт 3306 передавался только из надежных источников.
Серверы в этом примере имеют следующие IP-адреса:
Master IP: 192.168.121.190 Slave IP: 192.168.121.236
Установите MySQL
Стандартные репозитории Ubuntu 18.04 включают MySQL версии 5.7. Чтобы избежать каких-либо проблем, лучше установить одинаковую версию MySQL на обоих серверах.
Установите MySQL на Мастер-сервер:
sudo apt-get update
sudo apt-get install mysql-server
Установите MySQL на подчиненный сервер, используя те же команды:
sudo apt-get update
sudo apt-get install mysql-server
Настройте главный сервер
Первым шагом является настройка главного сервера MySQL. Мы внесем следующие изменения:
- Настройте сервер MySQL для прослушивания частного IP-адреса. Установите уникальный идентификатор сервера. Включите двоичное ведение журнала.
Для этого откройте файл конфигурации MySQL и раскомментируйте или установите следующее:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
мастер: /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 192.168.121.190 server-id = 1 log_bin = /var/log/mysql/mysql-bin.log
После этого перезапустите службу MySQL, чтобы изменения вступили в силу:
sudo systemctl restart mysql
Следующим шагом является создание нового пользователя репликации. Войдите на сервер MySQL от имени пользователя root, введя:
sudo mysql
В командной строке MySQL выполните следующие SQL-запросы, которые создадут пользователя
replica
и предоставят пользователю привилегию
REPLICATION SLAVE
:
CREATE USER 'replica'@'192.168.121.236' IDENTIFIED BY 'replica_password';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.121.236';
Убедитесь, что вы изменили IP-адрес с вашего ведомого IP-адреса. Вы можете назвать пользователя, как вы хотите.
Находясь в приглашении MySQL, выполните следующую команду, которая выведет двоичное имя файла и положение.
SHOW MASTER STATUS\G
*************************** 1. row *************************** File: mysql-bin.000001 Position: 629 Binlog_Do_DB: Binlog_Ignore_DB: Executed_Gtid_Set: 1 row in set (0.00 sec)
Запомните имя файла «mysql-bin.000001» и «Позиция 629». Эти значения понадобятся вам при настройке подчиненного сервера. Эти значения, вероятно, будут отличаться на вашем сервере.
Настройте подчиненный сервер
Как и в случае с главным сервером, мы внесем следующие изменения в подчиненный сервер:
- Настройте сервер MySQL для прослушивания на частном IPSet ID уникального сервера. Включите двоичное ведение журнала.
Откройте файл конфигурации MySQL и отредактируйте следующие строки:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
рабыня: /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 192.168.121.236 server-id = 2 log_bin = /var/log/mysql/mysql-bin.log
Перезапустите службу MySQL:
sudo systemctl restart mysql
Следующим шагом является настройка параметров, которые подчиненный сервер будет использовать для подключения к главному серверу. Войдите в оболочку MySQL:
sudo mysql
Сначала остановите подчиненные темы:
STOP SLAVE;
Выполните следующий запрос, который настроит подчиненное устройство для репликации мастера:
CHANGE MASTER TO
MASTER_HOST='192.168.121.190',
MASTER_USER='replica',
MASTER_PASSWORD='replica_password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=629;
Убедитесь, что вы используете правильный IP-адрес, имя пользователя и пароль. Имя и позиция файла журнала должны совпадать со значениями, которые вы получили от главного сервера.
После этого запустите подчиненные темы.
Проверьте конфигурацию
На этом этапе у вас должна быть работающая настройка репликации Master / Slave.
Чтобы убедиться, что все работает должным образом, мы создадим новую базу данных на главном сервере:
sudo mysql
CREATE DATABASE replicatest;
Войдите в подчиненную оболочку MySQL:
sudo mysql
Выполните следующую команду, чтобы получить список всех баз данных:
SHOW DATABASES;
Вы заметите, что база данных, которую вы создали на главном сервере, реплицируется на ведомое устройство:
+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | replicatest | | sys | +--------------------+ 5 rows in set (0.00 sec)
Вывод
В этом руководстве мы показали, как создать репликацию MySQL Master / Slave.
Не стесняйтесь оставлять комментарии, если у вас есть какие-либо вопросы.
Убунту MySQL МариадбКак настроить мастер-пароль для ваших паролей, хранящихся в Firefox
Как настроить мастер-пароль для ваших паролей, хранящихся в Firefox.
Как настроить мастер MySQL
Репликация MySQL - это процесс, который позволяет автоматически копировать данные с одного сервера базы данных на один или несколько серверов. В этом уроке мы объясним, как настроить репликацию MySQL Master / Slave с одним главным и одним подчиненным сервером в CentOS 7.
Как настроить мастер mysql (mariadb)
В этом руководстве мы покажем вам, как настроить репликацию главного / подчиненного MariaDB с одним главным и одним подчиненным серверами в Debian 10. MariaDB - это стандартная реализация MySQL в Debian.