---------------------------- # Início Instalação e Configuração MySQL Server Replicando Servidores # ---------------------------- MySQL Server é um excelente banco de dados open source, e pode ser adquirido a partir do repositório web do desenvolvedor: http://dev.mysql.com/downloads/mysql/5.0.html#win32 Instalando o MySQL Server 5.0 1
2
3
4
O ideal é instalar o MySQL como um serviço do Windows. Caso tenha problemas, o comando mysqld pode instalá-lo manualmente. A sintax está disponível no arquivo C:\Program Files\MySQL\MySQL Server 5.0\my.ini 5
Se preferir não informe nenhuma senha. Nota: Tive problemas em instalações anteriores por causa de inserir senhas. Siga o procedimento de instalação acima para ambos os servidores que replicaram os serviços. Doravante o primeiro servidor será identificado como Mestre e o secundário como Escravo. 6
Preparando a Máquina Mestre O primeiro passo é fazer um dump da(s) base(s) de dados que queremos replicar. Isso serve para criarmos uma cópia exata do nosso banco de dados para colocarmos no servidor Escravo. Para fazer um dump da base de dados use: # mysqldump --database <nome_do_db> -u root p > c:\meu_db.sql ou # mysqldump --all-database -u root p > c:\meu_mysql.sql De posse do(s) arquivo(s) SQL do dump da máquina Mestre, temos de criar o usuário que fará a replicação entre as duas máquinas. Logue-se como root (ou outro usuário com direitos) no mysql: Execute os comando abaixo para garantir o direito de cópia para o usuário replica: mysql> grant file, super, replication client, replication slave, reload on *.* to replica @ % identified by replica ; mysql> flush privileges; Na seção [mysqld] do arquivo de inicialização my.ini do MySQL (Servidor Mestre) insira as opções: Nota: As linhas ao lado servem para iniciar o log binário do mysql e um número único para o servidor. Salve o arquivo my.ini e reinicie o servidor mestre ( reiniciar somente o serviço do Mysql é suficiente) Reiniciado o servidor Mestre (ou ao menos os serviços) digite o comando abaixo no prompt do mysql: mysql> reset master; mysql> flush privileges; Use o comando abaixo para verificar a replicação no Servidor Master: mysql> show master status; Preparando a Máquina Escravo Antes de qualquer passo é necessário restabelecer as bases de dados do Servidor Mestre no Servidor Escravo através dos dumps efetuados anteriormente. 7
Use o comando abaixo para reestabelecer os dumps de backup: C:\mysql -u root -p ocsweb < c:\ocsweb.sql Na seção [mysqld] do arquivo de inicialização my.ini do MySQL (Servidor Escravo) insira as opções: No mysql do Servidor Escravo digite: mysql> grant file, super, replication client, replication slave, reload on *.* to replica @ % identified by replica ; mysql> stop slave; mysql> reset slave; mysql> flush privileges; Reinicie o Servidor Escravo. Com isso, as configurações de replicação estão encerradas. Nota: Atenção para a linha server-id=2. Repare que aqui no escravo usamos o numero 2 e no mestre usamos o número 1. Se tivessemos uma terceira máquina replicando dados, ela deveria ser a server-id=3. Estes números não devem se repetir e são usados pelo MySQL se orientar entre as replicações. Os parâmetros master-user e master-password são as mesmas das configurações feitas no Mestre, neste caso replica e replica. O último parâmetro é o comando replicate-do-db. Esse parâmetro serve para especificar qual a base de dados que queremos replicar. Se tivermos mais bases de dados sendo replicadas, devemos inclui-las da seguinte forma: replicate-do-db = minha_database1 Ou, caso aconteça de não querer apenas uma base de dados e sim, todas, apenas especifique a linha replicate-do-db = e o MySQL entenderá que todas as bases devem ser replicadas. Nota: Lembrando que para a replicação funcionar, se não for utilizado o processo de restore dos dumps, devem ser criadas as bases de dados (no master e no slave), assim como as tabelas, pois a replicação é só dos dados. Se tiver problemas na ativação do serviço do Mysql, use o comando abaixo: C:\mysqld-nt --defaults-file= C:\Caminho_do_arquivo_my.ini ou só o comando mysqld-nt.exe Use o comando abaixo para verificar se a replicação está ok no Servidor Escravo: mysql> show slave status; Nota: Repare que na saída do comando será mostrado uma coluna chamada Slave Running, cujo conteúdo deve ser yes. Caso haja algum problema, verifique as permissões da conta replica. Ela é geralmente culpada pela maioria dos problemas de replicação. Outra fonte de informação interessante é o log de erro do MySQL, localizado no linux geralmente no diretório /var/lib/mysql e no windows no diretório onde ele foi instalado. Caso voce tenha configurado um endereço IP incorretamente, o escravo obviamente não conseguirá se conectar ao mestre. Para consertar o problema, voce deve reconfigurar o arquivo my.cnf ou my.ini com o IP correto e reiniciar o escravo. Para permitir acesso remoto a partir de uma máquina da rede ao Servidor MySQL use: mysql>grant all privileges on *.* to root@ip_remoto9 identified by senha ; mysql>flush privileges; 8
Testando o acesso remoto: # mysql h ip_remoto -u root -p ---------------------------- # Fim Instalação e Configuração MySQL Server Replicando Servidores # ---------------------------- 9