MySQL replicação é mestre-escravo realizada por registo do log binário a partir da cópia mestre do "principal" refere-se ao banco de dados MySQL no servidor mestre "de" refere-se a um banco de dados MySQL a partir do servidor, e isto baseia-se na replicação nível de base de dados, esta deve ser consistente com o nome do servidor da base de dados principal da base de dados o nome do servidor, em seguida, a fim de alcançar replicação mestre-escravo, que precisa de ter pelo menos dois servidores MySQL (de preferência dois servidores MySQL estão localizados em um hospedeiro diferente, ou montado sobre uma porta de acolhimento dois MySQL pode ser diferente).
Em geral, a biblioteca principal e o banco de dados MySQL a partir da biblioteca são distribuídas em diferentes hosts. Se agora temos apenas um host, e é um sistema de janelas, como copiá-lo a partir do MySQL principal? Veja como:
Aqui nós só introduzir o método de operação de um mestre-escravo.
Meu computador foi xampp ambiente (com pacote de instalação do wamp similar) instalado integrado, você pode colocá-lo dentro do serviço MySQL como servidor mestre MySQL. Então, nós precisamos neste computador para instalar um MySQL, a partir da base de dados do servidor.
versão MySQL no meu computador xampp instalado como 5.6.20, a porta é 3306.
Precisamos instalar um MySQL (a melhor versão e instalar a mesma versão de um problema semelhante para evitar), porta a 3307, métodos de instalação, consulte: http://blog.csdn.net/lamp_yang_3533/article/details/52263751
parâmetros do servidor de banco de dados:
- servidor mestre (master): IP é 127.0.0.1, porta 3306
- A partir do servidor (escravo): IP é 127.0.0.1, porta 3307
configuração do servidor principal:
Modifique o arquivo de configuração do servidor de banco de dados master (E: \ xampp \ mysql \ bin \ my.ini), na tag de fundo [mysqld], adicione o seguinte código:
# Precisa fazer backup de banco de dados
log binário-do-db = teste
# Não precisa fazer backup de banco de dados
log binário-ignorar-db = mysql
# Ligue log binário
log-bin = mysql-bin
ID de servidor #
server-id = 1
Salvar saída, reiniciar o servidor mestre MySQL.
banco de dados binlog-do-db para uma necessidade específica a ser sincronizado, banco de dados binlog-ignore-db especificado não requer sincronização, se estes dois parâmetros não estão definidos a partir das cópias de servidor toda base de dados do servidor primário.
Geralmente não têm a conta root para conta de sincronização, para o efeito, é preciso criar um novo usuário (como user01, a senha é 123456) no servidor primário.
Aqui usamos a linha de comando para criar, como segue:
cmd abertos, a mudança para E: \ xampp \ mysql \ bin, servidor mestre MySQL está conectado com a conta root:
mysql -uroot -p -P3306
Criar um novo usuário:
criar usuário 'user01'@'127.0.0.1' identificado por '123456';
(@ Atrás do endereço endereço ip ip para permitir a conexão para o cliente.)
Em seguida, Configurar permissões para nova replicação usuários mestre-escravo:
conceder escravo de replicação em * * a 'user01'@'127.0.0.1' identificado por '123456'.;
(@ Atrás do endereço endereço ip ip para permitir a conexão do cliente, se as palavras '%', isso significa que o cliente não limitar o endereço IP)
Se base de dados do servidor primário (teste), houve dados, é preciso copiar manualmente os dados do servidor primário para o servidor. Veja como:
Neste caso, nós apenas fazer backup de um banco de dados (teste), teste, há uma basic_user tabela, a tabela também têm dados. A fim de evitar quando copiar os dados, os dados são atualizados no teste de banco de dados, precisamos bloquear o banco de dados, o comando é o seguinte:
mesas nivelada com bloqueio de leitura;
Este comando é um bloqueio de leitura global, ele vai te dar todo o servidor de banco de dados primário são acoplados com um bloqueio de leitura, a propósito aqui sobre a diferença entre a leitura e gravação bloqueios são:
- leia bloqueio (bloqueio de leitura): Também conhecido como bloqueios compartilhados, permitindo que todas as operações de leitura, mas bloqueando escreve que todas as conexões só pode dados lidos, mas não gravar dados.
- bloqueio de gravação (bloqueio de gravação): Também chamado de bloqueio exclusivo, bloqueio exclusivo, só permite ler e escrever a conexão atual, não permita que outras operações de leitura e gravação ao mesmo tempo.
Depois de bloquear o servidor de banco de dados primário, estamos a partir do servidor, crie um teste de banco de dados e todas as tabelas (incluindo estrutura da tabela e os dados da tabela) são importados.
Em seguida, execute o seguinte comando para desbloqueio:
mesas de desbloqueio;
Ver status de mestre servidor mestre:
mysql> show status mestre;
+ ------------------ + ---------- + -------------- + ---- -------------- + + -------------------
| arquivo | posição | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+ ------------------ + ---------- + -------------- + ---- -------------- + + -------------------
| mysql-bin.000008 | 498 | teste | mysql | |
+ ------------------ + ---------- + -------------- + ---- -------------- + + -------------------
A partir da configuração do servidor:
arquivo de configuração modificado a partir do banco de dados do servidor (E: \ mysql \ my.ini), na parte inferior [mysqld] tag, adicione o seguinte código:
# Porto
porto = 3307
ID de servidor #
server_id = 2
# Ligue log binário (do servidor não é necessário para abrir o log binário)
log-bin = mysql-bin
Salvar saída, reiniciar o serviço MySQL.
conexão com o MySQL a partir do servidor:
mysql -uroot -p -P3307
Copiar os parâmetros de configuração:
mudança mestre para MASTER_HOST = '127.0.0.1', master_user = 'Usuário01', master_password = '123456', MASTER_PORT = 3306, MASTER_LOG_FILE = 'mysql-bin.000008', MASTER_LOG_POS = 498;
parâmetros detalhados:
MASTER_HOST: servidor mestre IP
master_user: nome de usuário no servidor primário recém-criado
master_password: senha do usuário
mestre porto, Se você não modificou o padrão: MASTER_PORT.
MASTER_LOG_FILE: o nome do arquivo de log mestre binário, ver no visor principal quando completar os valores arquivo de status do servidor mestre
valor da posição da posição log, a visualização da tela principal ao preencher o estado do servidor mestre: MASTER_LOG_POS
Iniciar a replicação do servidor escravo:
iniciar escravo;
Ver condição de escravo a partir do servidor:
mysql> show de condição de escravo \ G
*************************** 1. linha ******************** *******
Slave_IO_State: Esperando mestre para evento send
MASTER_HOST: 127.0.0.1
Master_User: user01
MASTER_PORT: 3306
Connect_Retry: 60
MASTER_LOG_FILE: mysql-bin.000009
Read_Master_Log_Pos: 120
Relay_Log_File: hp-PC-relay-bin.000004
Relay_Log_Pos: 283
Relay_Master_Log_File: mysql-bin.000009
Slave_IO_Running: Sim
Slave_SQL_Running: Sim
Se o valor Slave_IO_Running e Slave_SQL_Running são como Sim, então a configuração principal foi replicado com sucesso a partir de tudo o que foi alcançado automaticamente a partir dos dados do servidor de banco de dados e servidor primário sincronizados.
Em seguida, enquanto o servidor principal actualiza os dados (por exemplo: um novo teste de uma tabela na base de dados ou tabela de dados alterações), automaticamente alinhada com o servidor principal a partir do servidor são. Mas se alguém deliberadamente alterar os dados do servidor, os dados no servidor primário não sincronizar as atualizações, a menos que colocar dois servidores MySQL em um mestre-escravo mútuo.