Связаться по Skype: vkarabedyants
Позвонить Написать
+7 (499) 404-28-83

Блог о системном администрировании серверов и сайтов

Установка, настройка программного обеспечения Linux, Windows операционных систем

Как настроить master-slave репликацию MariaDB с SSL на Ubuntu Linux

Как настроить Master-Slave репликацию данных с использованием сервера MariaDB на сервере Ubuntu Linux 16.04 LTS? Как шифровать трафик репликации, чтобы данные зашифровывались при передаче, защищая мои данные и пользователей от слежки?

Репликация данных «Master-Slave» позволяет копировать базы данных на несколько серверов MariaDB. Это полезно для резервного копирования, восстановления данных, балансировки нагрузки и многого другого. В этом учебном руководстве вы узнаете, как настроить репликацию MariaDB, защищенную SSL, между главным и подчиненным серверами.

Наш пример

mariadb mysql master slave setup

Рис. 01: Настройка репликации главного подчиненного устройства в MariaDB

В этой статье будут использоваться следующие IP-адреса серверов db1 и db2:

  1. 192.168.2.5 (db1) — главный сервер MariaDB
  2. 192.168.2.6 (db2) — подчиненный сервер MariaDB

Я собираюсь предположить, что оба db1 и db2 являются совершенно новыми серверами. На сервере нет существующей базы данных.

Что вам нужно для установки master-slave-кластера MariaDB?

  1. Минимум два сервера (могут быть облачные или физические)
  2. Частная сеть (LAN / VLAN) между серверами
  3. VPN между двумя центрами обработки данных, если устанавливается между двумя IDC
  4. Ubuntu Linux 16.04 LTS на обоих серверах

Обновите /etc/hosts

Сначала обновите файл /etc/hosts на сервере db1 и db2 следующим образом:

Изменить / добавить следующим образом:

Сохраните и закройте файл. Проверьте следующим образом:

Шаг 1 — Установите последнюю стабильную версию MariaDB на Ubuntu 16.04 LTS

Введите следующую команду apt-get на сервере db1 и db2 для установки MariaDB:

Результат выполнения:

установка mariadb

Рис. 02: Установка сервера MariaDB

Шаг 2 — Защитите MariaDB

Введите следующую команду:

Результат выполнения:

защита mariadb

Рис. 02: Настройка установки MariaDB

Шаг 3. Создание ключей SSL и сертификатов для MariaDB

Введите следующие команды только на сервере db1 :

Чтобы избежать каких-либо проблем, вы должны называть их так:

  • Общее имя CA: MariaDB admin
  • Общее имя сервера: MariaDB server
  • Клиентское общее имя: MariaDB client

Также скопируйте все сертификаты на подчиненный сервер db2:

Шаг 4. Настройка главного сервера MariaDB.

Введите следующие команды на главном сервере db1. Вам нужно отредактировать файл /etc/mysql/my.cnf, запустите:

Настройте клиент MariaDB (добавьте в раздел [client]) для использования SSL:

Set bind address, то есть прослушивание только частного IP-адреса db1 192.168.2.5 (убедитесь, что вы заменили IP 192.168.2.5 на ваш реальный IP-адрес)

Отметьте этот сервер как главный сервер. Это число должно быть уникальным:

Убедитесь, что на сервере установлены binlogs, т.е. убедитесь, что log_bin и lob_bin_index установлены следующим образом:

Настройте сервер MariaDB (добавьте в раздел [mysqld]), использовать SSL:

Сохраните и закройте файл. Перезапустите сервер MariaDB, запустите:

Настроить репликацию

Введите следующую команду на сервере master db1 :

ИЛИ

Вы должны создать пользователя MySQL на главном сервере (db1). Синтаксис:

Например:

Узнать статус мастера

Введите в командной строке следующую команду:

После открытия оболочки MySQL введите:

Результат выполнения:

настройка mariadb

Рис. 03: узнать статус мастера и записать позицию

Запишите файл и данные о расположении подчиненного сервера с именем db2.

Шаг 5. Настройка подчиненного сервера MariaDB

Введите следующие команды на сервере db2 . Сначала переместите все сертификаты из каталога /tmp/ssl/ в каталог /etc/mysql/:

Вам нужно отредактировать файл /etc/mysql/my.cnf, запустите:

Настройте клиент MariaDB (добавьте в раздел [client]) для использования SSL:

Set bind address, то есть прослушивать только частный IP-адрес db2 192.168.2.6 (убедитесь, что вы заменили IP 192.168.2.6 на ваш реальный IP-адрес)

Отметьте этот сервер как подчиненный сервер. Это число должно быть уникальным:

Настройте сервер MariaDB (добавьте в раздел [mysqld]), чтобы использовать SSL:

Сохраните и закройте файл. Перезапустите сервер MariaDB, запустите:

Введите следующую команду на подчиненном сервере db2:

Введите следующую команду sql:

Теперь добавьте или удалите данные на главном сервере с именем db1, и он будет реплицирован на подчиненном сервере db2.

Примечание

Вам нужно изменить свое веб-приложение, написанное на PHP / Perl / Python, чтобы записывать данные только на главный сервер db1. Если сервер master db1 упал,  читать данные с подчиненного сервера db2.

Наша команда имеет большой опыт построения отказоустойчивых систем, обращайтесь [email protected]

Оставить комментарий

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.