
Для успешной настройки Master-Slave репликации MariaDB, начните с установки серверов. Убедитесь, что на обоих серверах установлена одинаковая версия MariaDB. Это гарантирует отсутствие несовместимостей и упрощает настройку. На первом сервере (Master) настройте конфигурацию в файле my.cnf, добавив параметры server-id и log_bin. Например, server-id=1 и log_bin=mysql-bin являются минимальными требованиями для активации бинарного лога.
После того как Master настроен, откройте терминал и выполните команду GRANT REPLICATION SLAVE для создания пользователя, который будет использоваться Slave для подключения. Не забудьте указать хост и пароль. На Slave сервере также измените my.cnf, установив server-id=2. Это особенно важно, так как каждый сервер должен иметь уникальный идентификатор.
Теперь перейдите к запуску репликации. На Slave выполните команду CHANGE MASTER TO, указав IP адрес Master, номер порта, имя пользователя и пароль. После этого активируйте репликацию с помощью команды START SLAVE. Проверьте статус с помощью SHOW SLAVE STATUS, это позволит убедиться, что всё работает правильно.
Подготовка серверов для установки MariaDB и настройки репликации
Убедитесь, что на обоих серверах установлены последние обновления операционной системы. Это поможет избежать потенциальных проблем, связанных с безопасностью и совместимостью программного обеспечения. Используйте команду apt-get update && apt-get upgrade для Ubuntu/Debian или yum update для CentOS/Fedora.
Установите пакеты, необходимые для работы MariaDB. Для этого выполните команду apt-get install mariadb-server или yum install mariadb-server. Не забудьте проверить, установился ли MariaDB корректно, с помощью команды mysql —version.
Настройте сетевую конфигурацию. Убедитесь, что оба сервера могут обмениваться данными друг с другом. Настройте файрвол для разрешения трафика на порту 3306, который используется MariaDB. Например, для iptables используйте команду iptables -A INPUT -p tcp —dport 3306 -j ACCEPT.
Настройте файл конфигурации MariaDB. Для этого откройте файл /etc/mysql/my.cnf или /etc/my.cnf и добавьте параметры для репликации. Укажите уникальный идентификатор сервера (server-id) для каждого из них. Например, для главного сервера используйте server-id = 1, а для подчиненного – server-id = 2.
Обязательно отключите механизм проверки привилегий на подчиненном сервере. Это делается путем добавления строки skip-name-resolve в конфиг-файл. Данная настройка уменьшает задержки, связанные с проверкой имени хоста.
Создайте пользователя для репликации на главном сервере с необходимыми правами. Используйте следующие команды в MySQL: CREATE USER ‘replicator’@’%’ IDENTIFIED BY ‘password’; и GRANT REPLICATION SLAVE ON *.* TO ‘replicator’@’%’;. Убедитесь, что пароль надёжен.
После завершения всех этих шагов перезапустите службу MariaDB на обоих серверах. Для этого выполните systemctl restart mariadb. Проверяйте логи на наличие ошибок. Логи можно найти в /var/log/mysql/error.log.
Теперь ваша конфигурация готова к настройке репликации. В следующем шаге создайте слейв-соединение на подчиненном сервере, указав его параметры. Используйте команду CHANGE MASTER TO для установки необходимых параметров связи с главным сервером.
Конфигурация Master-сервера в MariaDB для репликации

Перезагрузите MariaDB, выполнив команду systemctl restart mariadb. Затем создайте пользователя для репликации, используя следующий запрос: CREATE USER 'репликатор'@'%' IDENTIFIED BY 'ваш_пароль'; и дайте ему необходимые привилегии командой GRANT REPLICATION SLAVE ON *.* TO 'репликатор'@'%';. После этого выполните SHOW MASTER STATUS;, чтобы получить необходимые данные (File и Position) для настройки Slave-сервера.
Настройка Slave-сервера и проверка корректности репликации

Для начала откройте файл конфигурации MariaDB на Slave-сервере, который обычно расположен по пути /etc/mysql/my.cnf или /etc/my.cnf. Добавьте следующий блок для настройки репликации:
[mysqld]
server-id = 2
relay-log = /var/log/mysql/mysql-relay-bin.log
log_slave_updates = 1
read_only = 1
Сохраните изменения и перезапустите MariaDB с помощью команды sudo systemctl restart mariadb. После этого выполните команду SHOW MASTER STATUS; на Master-сервере. Здесь вам нужны значения File и Position, которые используете на Slave-сервере для настройки соединения.
Теперь настройте Slave-сервер с помощью следующей команды:
CHANGE MASTER TO
MASTER_HOST='
MASTER_USER='репликационный_пользователь',
MASTER_PASSWORD='ваш_пароль',
MASTER_LOG_FILE='<значение_file>',
MASTER_LOG_POS=<значение_position>;
После этого запустите репликацию командой START SLAVE;. Можно убедиться в правильной настройке, выполнив SHOW SLAVE STATUS;. Все параметры, такие как Slave_IO_Running и Slave_SQL_Running, должны иметь значение Yes.
Для окончательной проверки убедитесь, что данные на Slave-сервере совпадают с данными на Master-сервере. Для этого создайте тестовую таблицу на Master и выполните соответствующий запрос на Slave через некоторое время. Если данные синхронизированы, все настроено верно!
Отзывы
RedDragon
Интересно, вы описали настройку Master Slave для MariaDB на двух серверах. Но как вы считаете, насколько важно выбирать правильное оборудование для таких задач? Уверен, что производительность и стабильность системы во многом зависят от этого выбора. Возможно, стоит подробнее рассмотреть, какие параметры серверов могут оказать влияние на общую работу? И что бы вы посоветовали новичкам, которые только начинают заниматься настройкой такой системы, чтобы избежать распространённых ошибок? Ваш опыт может быть для них очень полезен! Как вы думаете, полезно ли в таких случаях обращаться к комьюнити для получения советов?
IronFist
Настоящий вопрос: сколько именно ошибок должно быть в настройке Master-Slave, чтобы почувствовать себя настоящим администратором? Или правильнее просто сдаться и попробовать покер?
moonflower
Настройка Master Slave в MariaDB на двух серверах — это не только полезный опыт, но и возможность углубить свои знания. Каждая деталь имеет значение, и, следуя четким шагам, вы обеспечите надежность данных. Уверена, у вас все получится!
SilentGhost
Отличный подход к настройке БД! Это отличный способ повысить производительность и надежность работы. Уверен, многим это поможет. Жду вдохновения для своих проектов!
sunshine
Настройка Master-Slave в MariaDB на двух серверах — это как выбирать, кто из вас лучше: трудности с репликацией или постоянные конфликты с настройками. Каждый шаг требует терпения и лотереи, не иначе.