MySQL - Replicação
Tendo-me deparado com algumas dores de cabeça de forma a conseguir pôr várias instâncias do MySQL a replicar-se entre si, fica um pequeno roteiro (baseado em MySQL.com - Replication [http://dev.mysql.com/doc/refman/5.0/en/replication.html]) para criar replicação com um Novo Master e um Novo Slave:
Criar um user para a replicação no master (ex: user repl):
mysql> GRANT REPLICATION SLAVE ON *.* TO ‘repl’@'%’ IDENTIFIED BY ‘password’;
No master, acrescentar as seguintes opções a /etc/mysql/my.cnf debaixo da secção [mysqld] (se estiver comentadas, descomentar):
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
No master, comentar as linhas:
#bind-address = 127.0.0.1
No slave, acrescentar as seguintes opções a /etc/mysql/my.cnf debaixo da secção [mysqld] (se estiverem comentadas, descomentar):
server-id = 2
No master, executar as seguintes instruções e guardar o resultado do STATUS:
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;
UNLOCK TABLES;
No slave, executar o comando CHANGE MASTER para definir a configuração do master (com os resultados do status):
mysql> CHANGE MASTER TO
MASTER_HOST=’master_host_name’,
MASTER_USER=’replication_user_name’,
MASTER_PASSWORD=’replication_password’,
MASTER_LOG_FILE=’recorded_log_file_name’,
MASTER_LOG_POS=recorded_log_position;
Copiar a informação do master para o slave. Ex.:
shell> mysql -h master < fulldb.dump