Cluster MySql ( Cluster Circular Master-Master)

Para realizar  se debe configurar el archivo /etc/my.cnf con los siguientes datos.

Servidor A:
/etc/my.cnf
server-id=1
log-bin = mysql-bin
sync_binlog                        = 1
max-binlog-size                  = 500M
expire_logs_days                = 4
innodb_flush_log_at_trx_commit  = 1
relay-log                   = mysqld-relay-bin
max-relay-log-size   = 500M
relay_log_purge       = 1
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
Servidor B:
/etc/my.cnf
server-id=2
 log-bin = mysql-bin
 sync_binlog                        = 1
 max-binlog-size                  = 500M
 expire_logs_days                = 4
 innodb_flush_log_at_trx_commit  = 1
 relay-log                   = mysqld-relay-bin
 max-relay-log-size   = 500M
 relay_log_purge       = 1
 symbolic-links=0
[mysqld_safe]
 log-error=/var/log/mysqld.log
 pid-file=/var/run/mysqld/mysqld.pid

En los dos servidores se debe crear un usuario para la replicación, esto se realiza en el cli de mysql. Se realiza con los siguientes comandos:

# mysql -u root -p
 mysql>
 mysql> grant replication slave, replication client on *.* to 'replication'@'%' identified by 'Master20';
mysql> FLUSH PRIVILEGES;
mysql> show grants for replication@"%";

Se debe saber la direccion del archivo binario y la posición en la que se encuentra el puntero. esto se debe teneren cuenta en los dos servidores

mysql> SHOW MASTER STATUS;
+---------------+----------+--------------+------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------+----------+--------------+------------------+
| mysql-bin.003 | 73       | test         | manual,mysql     |
+---------------+----------+--------------+------------------+

En el ejemplo el archivo binario es mysql-bin.003 y esta en la posición 73.

Con la información del archivo binario y la posición del servidor A se ejecuta la edición en el servidor B, se debe parar el sistema de esclavo, la sentencia es la siguiente.

mysql>slave stop;
mysql> CHANGE MASTER TO MASTER_HOST='{IP_SERVIDOR_A}',MASTER_USER='replication', MASTER_PASSWORD='Master20', MASTER_LOG_FILE='{Binary_Log}', MASTER_LOG_POS=  {Binary_Position};
mysql> slave start;

En el caso del ejemplo nos da:

mysql>slave stop;
mysql> CHANGE MASTER TO MASTER_HOST='{IP_SERVIDOR_A}',MASTER_USER='replication', MASTER_PASSWORD='Master20', MASTER_LOG_FILE='mysql-bin.003', MASTER_LOG_POS=  73;
mysql> slave start;

Luego de realizar este cambio se debe revisar los tiempos de sincronización con la sentencia:

mysql> show slave status\G