Após configurações iniciais do servidor, vou instalar o repositorio do MySQL

# yum install https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm

# nano /etc/yum.repos.d/mysql-community.repo

No arquivo de repo, procurar a versão do MySQL a ser instalada.

# yum update

# yum install mysql-server -y

# service mysqld start

# mysql_secure_instalation

# mysql -u root -p

Caso o root não esteja remoto, executar o comando:

# GRANT ALL ON *.* TO root@'%' IDENTIFIED BY 'sua_senha';
# FLUSH PRIVILEGES;

Após instalação e configuração de ambos os servidores que serão Master, configurar o my.cnf

Adicionar linha:

innodb_buffer_pool_size = 256M

log-bin=/var/lib/mysql/mysql-bin.log

# Para o primeiro servidor
server-id=1

# Para evitar colisão de chave primaria. [Server 1]
auto-increment-increment = 2
auto-increment-offset = 1

# Para o outro servidor:
server-id=2 ...

# Para evitar colisão de chave primaria. [Server 2]
auto-increment-increment = 2
auto-increment-offset = 2

Sair, salvar o arquivo e reiniciar o servidor, para ver se está tudo correto, verificar se os arquivos abaixo foram criados:

/var/lib/mysql/mysql-bin.index
/var/lib/mysql/mysql-bin.index
/var/lib/mysql/mysql-bin.000001


Para ambos os servidores executar os comandos logados no MySQL, criar um usuário apenas para replicação:

# GRANT REPLICATION SLAVE ON *.* TO 'replication'@'ip-do-outro' IDENTIFIED BY 'senhasecreta';

# FLUSH PRIVILEGES;

Para verificar se os dados estão corretos para iniciar a replicação, executar o comando:

# SHOW MASTER STATUS;

+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000005 |      602 |              |                  |
+------------------+----------+--------------+------------------+
- See more at: http://www.devin.com.br/replicacao-mysql/#sthash.QaI5eIyI.dpuf
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000005 |      602 |              |                  |
+------------------+----------+--------------+------------------+-

Lembrando que, o resultado vindo desse comando, deve ser o mesmo em ambos servidores, visto que os mesmos dados já foram colocados nos dois servidores.

Após a verificação, vamos configurar o Master nos dois servidores.


CHANGE MASTER TO
MASTER_HOST='192.168.0.1',
MASTER_USER='replication',
MASTER_PASSWORD='senhasecreta',
MASTER_LOG_FILE='mysql-bin.000005',
MASTER_LOG_POS=602;

Depois disso, iniciar os Slave,

START SLAVE;

Verificação.

SHOW SLAVE STATUS \G


Fonte:  http://www.devin.com.br/replicacao-mysql/
SHOW SLAVE STATUS \G
START SLAVE;
CHANGE MASTER TO
       MASTER_HOST='192.168.0.1',
       MASTER_USER='replication',
       MASTER_PASSWORD='senhasecreta',
       MASTER_LOG_FILE='mysql-bin.000005',
       MASTER_LOG_POS=602;
- See more at: http://www.devin.com.br/replicacao-mysql/#sthash.QaI5eIyI.dpuf
log-bin=/var/lib/mysql/mysql-bin.log