Abr 13

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

Responder

Tem que estar registado para poder deixar um comentário

©2009 — 2024 Shaka Zulu
http://ecosperdidos.digideia.com
2024-12-12 14:33