Replicação MYSQL simples

De Wiki Hackstore

Master

Atualize a estrutura do mysql:

mysql_upgrade --force -uroot -psenha_mysql


Configure o arquivo de configuração do mysql master:

vi /etc/my.cnf

Adicione as seguintes linhas:

# cluster
server-id= 1
binlog-do-db=controlservices
binlog-do-db=mysar
binlog-do-db=wordpresscontrolsrv
relay-log = mysql-relay-bin
relay-log-index = mysql-relay-bin.index
log-bin = mysql-bin

Reinicie o mysql master para aplicar as configurações:

/etc/init.d/mysql restart

Entre no banco de dados MASTER e crie as credenciais de sincronização:

mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%' IDENTIFIED BY 'senha_mysql';
mysql> FLUSH PRIVILEGES;
mysql> FLUSH TABLES WITH READ LOCK;
mysql> SHOW MASTER STATUS;

Faça um dump das bases de dados a serem replicadas, e envie os arquivos de dump para o servidor slave:

mysqldump -u root -psenha_mysql controlservices > controlservices.sql
mysqldump -u root -psenha_mysql mysar > mysar.sql
mysqldump -u root -psenha_mysql wordpresscontrolsrv > wordpresscontrolsrv

Entre no banco de dados MASTER e desbloqueie as tabelas:

mysql> UNLOCK TABLES;
mysql> QUIT;


Slave

Atualize a estrutura do mysql:

mysql_upgrade --force -uroot -psenha_mysql

Entre no banco de dados SLAVE e crie as bases de dados a serem replicadas:

mysql> CREATE DATABASE controlservices;
mysql> CREATE DATABASE mysar;
mysql> CREATE DATABASE wordpresscontrolsrv;
mysql> EXIT;

Importe as bases de dados:

mysql -psenha_mysql controlservices < controlservices.sql
mysql -psenha_mysql mysar < mysar.sql
mysql -psenha_mysql wordpresscontrolsrv < wordpresscontrolsrv.sql


Configure o arquivo de configuração do mysql slave:

vi /etc/my.cnf

Adicione as seguintes linhas:

# Cluster
server-id = 2
replicate-do-db=mysar
replicate-do-db=controlservices
replicate-do-db=wordpresscontrolsrv
relay-log = mysql-relay-bin

Remova o arquivo de ID e reinicie o mysql slave para aplicar as configurações:

rm /var/lib/mysql/auto.cnf
/etc/init.d/mysql restart


Configure o servidor slave para replicar com o servidor master:

OBS: Vá até o servidor MASTER e obtenha o valor de "MASTER_LOG_POS" utilizando o comando "SHOW MASTER STATUS;":


mysql> CHANGE MASTER TO MASTER_HOST='192.168.0.6',MASTER_USER='replication', MASTER_PASSWORD='senha_mysql', MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=1898330;

Inicie a replicação:

mysql> START SLAVE;

Confira se está tudo ok:

mysql> SHOW SLAVE STATUS\G