Вы здесь

Настройка кластера MySQL из двух узлов

Предполагается, что на узлах уже установлены клиентская (MySQL-client-community) и серверная (MySQL-server-community) части MySQL. Базы данных находятся в каталоге /var/lib/mysql/. Пример успешно использован для CentOS 5.4 и MySQL 5.1.42.
Пускай первый узел будет называться node1 (IP 192.168.0.101), а второй узел – node2 (IP 192.168.0.201). В данном примере dual-master репликация будет работать для баз данных с именами testdb1 и testdb2. Предполагается, что для баз данных уже созданы основные пользователи.
С помощью MySQL-клиента на node1 добавляем нового пользователя repluser с правами на репликацию (предполагается, что пароль pwd будет изменен) :

GRANT REPLICATION SLAVE ON *.* TO ‘repluser’@’192.168.0.201′ IDENTIFIED BY ‘pwd’;

То же самое нужно сделать на node2 :

GRANT REPLICATION SLAVE ON *.* TO ‘repluser’@’192.168.0.101′ IDENTIFIED BY ‘pwd’;

После этого сеанс MySQL-клиента можно завершить и приняться за правку конфигурационного файла MySQL (обычно, это my.ini).
На node1 добавляем в секцию [mysqld] следующие строки :

server-id = 1
log-bin = /var/lib/mysql/bin.log
log-slave-updates
log-bin-index = /var/lib/mysql/log-bin.index
log-error = /var/lib/mysql/error.log

relay-log = /var/lib/mysql/relay.log
relay-log-info-file = /var/lib/mysql/relay-log.info
relay-log-index = /var/lib/mysql/relay-log.index

auto_increment_increment = 2
auto_increment_offset = 1
master-host = 192.168.0.201
master-user = repluser
master-password = pwd

replicate-do-db = testdb1
replicate-do-db = testdb2

На node2 выполняем аналогичные действия :

server-id = 2
log-bin = /var/lib/mysql/bin.log
log-slave-updates
log-bin-index = /var/lib/mysql/log-bin.index
log-error = /var/lib/mysql/error.log

relay-log = /var/lib/mysql/relay.log
relay-log-info-file = /var/lib/mysql/relay-log.info
relay-log-index = /var/lib/mysql/relay-log.index

auto_increment_increment = 2
auto_increment_offset = 2
master-host = 192.168.0.101
master-user = repluser
master-password = pwd

replicate-do-db = testdb1
replicate-do-db = testdb2

После сохранения конфигурационных файлов, на обоих узлах следует перезапустить MySQL-сервер :

[root@server01 ~]# service mysql restart

Если все настроено правильно, то при запуске в MySQL клиенте команды

SHOW SLAVE STATUS\G

на любом из узлов в строке Slave_IO_State должно быть написано

Waiting for master to send event

Теперь кластер можно использовать, например, для построения разделенного на нескольких серверах веб-сайта или других задач распределения базы данных в режиме dual-master.
Если данные не реплицируются или произошла серьезная ошибка в работе кластера, следующий код можно использовать для повторного запуска MySQL в режиме dual-primary (выполнять нужно на обоих узлах) :

[root@server01 ~]# service mysql stop
[root@server01 ~]# cd /var/lib/mysql/
[root@server01 ~]# rm bin.00000* error.log log-bin.index master.info relay*
[root@server01 ~]# service mysql start
 
Взято отсюда