Настя и сборник весёлых историй
Оглавление:
- Предпосылки
- Установка MariaDB
- Настройка главного сервера
- Конфигурирование подчиненного сервера
- Проверьте конфигурацию
- Вывод
Репликация MySQL - это процесс копирования данных с одного сервера базы данных (главного) на один или несколько серверов (ведомых).
MySQL поддерживает несколько топологий репликации, причем топология Master / Slave является одной из наиболее известных топологий, в которой один сервер базы данных выступает в качестве главного, а один или несколько серверов действуют в качестве ведомых. По умолчанию репликация является асинхронной, когда ведущий отправляет события, описывающие изменения базы данных, в свой двоичный журнал, а ведомые запрашивают события, когда они готовы.
В этом руководстве мы покажем вам, как настроить репликацию главного / подчиненного MariaDB с одним главным и одним подчиненным серверами в Debian 10. MariaDB - это стандартная реализация MySQL в Debian. Те же шаги применяются для Oracle MySQL.
Этот тип топологии репликации лучше всего подходит для развертывания реплик чтения для масштабирования чтения, оперативного резервного копирования баз данных для аварийного восстановления и для заданий аналитики.
Предпосылки
Мы предполагаем, что у вас есть два сервера, на которых запущен Debian 10, взаимодействующих друг с другом через частную сеть. Если ваш хостинг-провайдер не поддерживает частные IP-адреса, вы можете использовать публичные IP-адреса и настроить брандмауэр так, чтобы трафик на порт 3306 передавался только из надежных источников.
Серверы, используемые в этом примере, имеют следующие IP-адреса:
Master IP: 10.10.8.12 Slave IP: 10.10.8.164
Установка MariaDB
В репозитории Debian 10 по умолчанию включена версия MariaDB 10.3. Лучше установить одну и ту же версию MariaDB на обоих серверах, чтобы избежать возможных проблем.
Установите MariaDB как на ведущем, так и на ведомом устройствах, выполнив следующие команды:
sudo apt-get update
sudo apt-get install mariadb-server
Настройка главного сервера
Первым шагом является настройка главного сервера. Мы внесем следующие изменения:
- Настройте сервер MariaDB для прослушивания частного IP-адреса. Установите уникальный идентификатор сервера. Включите двоичное ведение журнала.
Откройте файл конфигурации MariaDB и раскомментируйте или установите следующие строки:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
мастер: /etc/mysql/mariadb.conf.d/50-server.cnf
bind-address = 10.10.8.12 server-id = 1 log_bin = /var/log/mysql/mysql-bin.log
После этого сохраните файл и перезапустите службу MySQL, чтобы изменения вступили в силу:
sudo systemctl restart mariadb
Следующим шагом является создание нового пользователя репликации. Войдите на сервер MariaDB как пользователь root:
sudo mysql
Выполните следующие SQL-запросы, чтобы создать пользователя с именем
replica
и предоставить пользователю привилегию
REPLICATION SLAVE
:
CREATE USER 'replica'@'10.10.8.164' IDENTIFIED BY 'replica_password';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'10.10.8.164';
Убедитесь, что вы изменили IP-адрес с вашего ведомого IP-адреса. Вы можете назвать пользователя, как вы хотите.
Находясь в приглашении MySQL, выполните следующую команду, которая выведет двоичное имя файла и положение.
SHOW MASTER STATUS\G
*************************** 1. row *************************** File: mysql-bin.000001 Position: 328 Binlog_Do_DB: Binlog_Ignore_DB: 1 row in set (0.001 sec)
Обратите внимание на имя файла, «mysql-bin.000001» и положение «328». Эти значения необходимы при настройке подчиненного сервера и, вероятно, будут отличаться на вашем сервере.
Конфигурирование подчиненного сервера
Мы внесем те же изменения на подчиненном сервере, что и на главном:
- Настройте сервер MySQL для прослушивания частного IP-адреса. Установите уникальный идентификатор сервера. Включите двоичное ведение журнала.
Откройте файл конфигурации MariaDB и отредактируйте следующие строки:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
рабыня: /etc/mysql/mariadb.conf.d/50-server.cnf
bind-address = 10.10.8.164 server-id = 2 log_bin = /var/log/mysql/mysql-bin.log
Перезапустите сервис MariaDB:
sudo systemctl restart mariadb
Следующим шагом является настройка параметров, которые подчиненный сервер будет использовать для подключения к главному серверу. Войдите в оболочку MariaDB:
sudo mysql
Начните с остановки подчиненных потоков:
STOP SLAVE;
Выполните следующий запрос, чтобы настроить репликацию Master / Slave:
CHANGE MASTER TO
MASTER_HOST='10.10.8.12',
MASTER_USER='replica',
MASTER_PASSWORD='replica_password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=328;
Убедитесь, что вы используете правильный 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)
Вывод
В этом учебном пособии мы показали, как вы создаете реплику MariaDB Master / Slave в Debian 10.
Не стесняйтесь оставлять комментарии, если у вас есть какие-либо вопросы.
Debian MySQL МариадбКак настроить мастер-пароль для ваших паролей, хранящихся в Firefox
Как настроить мастер-пароль для ваших паролей, хранящихся в Firefox.
Как настроить мастер MySQL
Репликация MySQL - это процесс, который позволяет автоматически копировать данные с одного сервера базы данных на один или несколько серверов. В этом уроке мы объясним, как настроить репликацию MySQL Master / Slave с одним главным и одним подчиненным сервером в CentOS 7.
Как настроить мастер MySQL
Репликация MySQL - это процесс, который позволяет автоматически копировать данные с одного сервера базы данных на один или несколько серверов. В этом руководстве рассматривается базовый пример репликации MySQL Master / Slave с одним главным и одним подчиненным сервером в Ubuntu 18.04.