Ao fazer o desenvolvimento, preciso sincronizar os bancos de dados MySQL. Os dois sistemas possuem a mesma instalação, ambos são FreeBSD5.4 e PHP 4.4.0 instalados. .
1. Instale e configure
dois servidores. Instale o MySQL separadamente e instale-os no diretório /usr/local/MySQL (as etapas de instalação são omitidas, consulte os documentos relevantes. Os IPs dos dois servidores são 192.168.0.1 e 192.168). .0.2 respectivamente Usamos 192.168.0.1 como banco de dados mestre e 192.168.0.2 como servidor escravo Usamos sincronização unidirecional, ou seja, os dados do mestre são os dados do mestre, e então o escravo vai ativamente para o mestre. sincronizar os dados de volta.
As configurações dos dois servidores são as mesmas. Vamos copiar os principais arquivos de configuração. Os arquivos de configuração padrão estão no diretório /usr/local/MySQL/share/MySQL, que inclui my-large.cnf, my-medium.cnf, my -small.cnf e outros escritores, estamos apenas testando, basta usar my-medium.cnf. Após a instalação do MySQL, o arquivo de configuração padrão é especificado no diretório de armazenamento do banco de dados. Estamos usando 4.1.X, portanto o arquivo de configuração deve estar no diretório /usr/local/MySQL/var, então copie o arquivo de configuração lá:
cp /usr/local/MySQL/share/MySQL/my-medium.cnf /usr/local/MySQL/var/my.cnf
Os dois servidores executam a mesma operação de cópia do arquivo de configuração.
2. Configure o servidor Master
Precisamos configurar 192.168.0.1 como o servidor MySQL principal (master). Em seguida, temos que considerar qual banco de dados precisamos sincronizar e qual usuário usar para sincronização. o usuário root para sincronização aqui, e somente o banco de dados abc precisa ser sincronizado.
Abra o arquivo de configuração:
vi /usr/local/MySQL/var/my.cnf
Encontre esta informação:
# id exclusivo necessário entre 1 e 2 ^ 32 - 1# o padrão é 1 se master-host não estiver definido# mas não funcionará como master se omitidoserver-id = 1 //1 é master, 2 é salva
Adicione duas linhas:
sql-bin-update-same //Formulário de sincronização binlog-do-db = abc //Banco de dados a ser sincronizado
Reinicie o servidor MySQL em 192.168.0.1:
/usr/local/MySQL/bin/MySQLadmin shutdown /usr/local/MySQL/bin/MySQLd_safe --user=MySQL &
3. Configure o servidor escravo
Nosso servidor escravo toma principalmente a iniciativa de sincronizar os dados de volta ao servidor mestre. Editamos o arquivo de configuração.
vi /usr/local/MySQL/var/my.cnf
Encontre informações semelhantes abaixo:
# id exclusivo necessário entre 1 e 2^32 - 1# o padrão é 1 se master-host não estiver definido# mas não funcionará como master se omitidoserver-id = 1
Altere o server-id acima para 2 e adicione algumas informações:
server-id = 2 //Este MySQL é um servidor escravo master-host = 192.168.0.1 //O IP do servidor mestre master-user = root //O usuário que se conecta ao servidor mestre master-password = '' / /A senha para conexão com o servidor mestre master -port = 3306 //Porta de conexão master-connect-retry = 10 //Número de tentativas replicate-do-db = abc //Banco de dados a ser sincronizado log-slave-updates // Formulário de sincronização
Reinicie o servidor MySQL em 192.168.0.2:
/usr/local/MySQL/bin/MySQLadmin shutdown /usr/local/MySQL/bin/MySQLd_safe --user=MySQL &
4. Para testar a instalação,
primeiro verifique o log do host do escravo:
cat /usr/local/MySQL/var/xxxxx_err (xxx é o nome do host)
Verifique se a conexão está normal. Se você vir uma mensagem como esta, você teve sucesso.
051031 11:42:40 MySQLd iniciado051031 11:42:41 InnoDB: Iniciado; número de sequência de log 0 43634/usr/local/MySQL/libexec/MySQLd: pronto para conexões. Versão: '4.1.15-log' soquete: '/ porta tmp/MySQL.sock': 3306 Distribuição de origem051031 11:42:41 [Nota] Thread SQL escravo inicializado, iniciando a replicação no log 'FIRST' na posição 0, log de retransmissão './new4-relay-bin.000001' posição: 4051031 11:43:21 [Nota] Thread de E/S escravo: conectado ao mestre '[email protected]:3306' , a replicação foi iniciada no log 'FIRST' na posição 4
Veja informações sobre o Master
/usr/local/MySQL/bin/MySQL -u raiz
Ver status mestre:
MySQL> mostra o status do mestre;
Verifique as informações do processo MySQL em Master:
MySQL> mostrar lista de processos;
Ver informações sobre escravo:
/usr/local/MySQL/bin/MySQL -u raiz
Ver status do escravo:
MySQL> mostra o status do escravo;
Verifique as informações do processo MySQL no escravo:
MySQL> mostrar lista de processos;
Você pode então criar uma estrutura de tabela na biblioteca ABC do mestre e inserir dados e, em seguida, verificar se o escravo sincronizou os dados e verificar se a configuração foi bem-sucedida.
Finalmente, se você estiver interessado, você pode estudar o backup a quente com clique duplo ou a implementação de sincronização de um mestre e vários escravos.