Mysql mestre-escravo de replicação --- janelas

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.

 

Publicado 168 artigos originais · ganhou elogios 16 · vê 90000 +

Acho que você gosta

Origin blog.csdn.net/ajax_yan/article/details/104993830
Recomendado
Clasificación