MySQL Replication · 2 min read · Feb 02, 2026

Мастера-Мастера Репликация С MySQL 5 На Fedora 8

Мастера-Мастера Репликация С MySQL 5 На Fedora 8

Версия 1.0
Автор: Оливер Мейер

Этот документ описывает, как настроить мастера-мастера репликацию с MySQL 5 на Fedora 8. Начиная с версии 5, MySQL поддерживает встроенную мастера-мастера репликацию, решая проблему, которая может возникнуть с самосгенерированными ключами. В предыдущих версиях MySQL проблема с мастера-мастера репликацией заключалась в том, что конфликты возникали немедленно, если узел A и узел B оба вставляли автоинкрементный ключ в одну и ту же таблицу. Преимущества мастера-мастера репликации по сравнению с традиционной мастера-слейв репликацией заключаются в том, что вам не нужно изменять ваши приложения, чтобы делать записи только на мастере, и что легче обеспечить высокую доступность, потому что если мастер выходит из строя, у вас все еще есть другой мастер.

Этот howto является практическим руководством без каких-либо гарантий - он не охватывает теоретические основы. Существует множество способов настройки такой системы - это тот способ, который я выбрал.

1 Подготовка

Для этого howto я настроил две системы Fedora 8 (минимальная установка без графического интерфейса и т.д.) с следующей конфигурацией.

1.1 Система 1

Имя хоста: server1.example.com
IP: 192.168.0.100

1.2 Система 2

Имя хоста: server2.example.com
IP: 192.168.0.200

2 MySQL

2.1 Необходимые пакеты на обеих системах

Если вы еще не установили MySQL на обеих системах, вы можете установить его (клиент и сервер) с помощью:

yum -y install mysql mysql-server

2.2 Начальный запуск MySQL сервера на обеих системах

Запустите MySQL сервер.

/etc/init.d/mysqld start

2.3 Пароль root для MySQL

2.3.1 Обе системы

Установите пароль для пользователя root MySQL на localhost.

mysqladmin -u root password %sql_root_password%

2.3.2 Система 1

Установите пароль для пользователя root MySQL на server1.example.com.

mysqladmin -u root -h server1.example.com password %mysql_root_password%

2.3.3 Система 2

Установите пароль для пользователя root MySQL на server2.example.com.

mysqladmin -u root -h server2.example.com password %mysql_root_password%

2.4 Пользователь репликации MySQL

2.4.1 Система 1

Создайте пользователя репликации, который Система 2 будет использовать для доступа к базе данных MySQL на Системе 1.

mysql -u root -p

GRANT REPLICATION SLAVE ON *.* TO 'slave2_user'@'%' IDENTIFIED BY '%mysql_slaveuser_password%'; FLUSH PRIVILEGES; quit;

2.4.2 Система 2

Создайте пользователя репликации, который Система 1 будет использовать для доступа к базе данных MySQL на Системе 2.

mysql -u root -p

GRANT REPLICATION SLAVE ON *.* TO 'slave1_user'@'%' IDENTIFIED BY '%mysql_slaveuser_password%'; FLUSH PRIVILEGES; quit;

2.5 База данных на Системе 2

Я предполагаю, что база данных exampledb уже существует на Системе 1 - содержащая таблицы с записями. Поэтому нам нужно создать пустую базу данных с тем же именем, что и существующая база данных на Системе 1.

mysql -u root -p

CREATE DATABASE exampledb; quit;

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.