AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 11775
Accepted
Dave Rix
Dave Rix
Asked: 2012-01-28 06:33:41 +0800 CST2012-01-28 06:33:41 +0800 CST 2012-01-28 06:33:41 +0800 CST

Replicação do MySQL via falha de DNS

  • 772

Estou tendo problemas para usar a replicação quando as máquinas estão configuradas para usar nomes de host em vez de endereços IP. O "skip-name-resolve" está DESLIGADO.

Se eu usar endereços IP, está tudo bem. Usando nomes DNS, tudo para.

no mestre

A replicação é configurada com o seguinte comando:

GRANT REPLICATION SLAVE ON *.* TO 'repluser'@'slavename.internal.domain' IDENTIFIED BY 'repl_pwd';

no escravo

A conexão do escravo é configurada como tal:

change master to
    master_host='mastername',
    master_user='repluser',
    master_password='repl_pwd',
    master_log_file='mastername.000001',
    master_log_pos=1;

O erro que estou recebendo

Ao iniciar o slave de replicação, o arquivo de log mostra as seguintes mensagens:

120127 14:07:48 [Note] Slave SQL thread initialized, starting replication in log 'mastername.000001' at position 4, relay log './mysql-relay-bin.000001' position: 4
120127 14:07:48 [ERROR] Slave I/O: error connecting to master 'repluser@mastername:3306' - retry-time: 60  retries: 86400, Error_code: 1130

Se eu tentar conectar usando a linha de comando da máquina cliente usando:

mysql -h mastername -u repluser -prepl_pwd

Eu recebo o erro:

ERROR 1130 (HY000): Host 'the.ip.address.here' is not allowed to connect to this MySQL server

Eu realmente espero que alguém possa me ajudar com meus problemas de resolução de domínio!!!

mysql replication
  • 2 2 respostas
  • 3523 Views

2 respostas

  • Voted
  1. Best Answer
    Dave Rix
    2012-03-08T13:19:39+08:002012-03-08T13:19:39+08:00

    Eu me sinto péssimo por ter esquecido essa questão!!!

    Eu localizei e corrigi o problema da seguinte maneira.

    Quando os nomes DNS foram adicionados ao DNS, a pesquisa reversa correspondente não foi criada.

    Isso fez com que o MySQL não pudesse realizar a pesquisa reversa do endereço IP para o nome DNS correto e, portanto, rejeitou a conexão.

    Portanto, adicionamos um conjunto de pesquisas reversas do endereço IP aos nomes DNS, executamos FLUSH HOSTS;em todas as caixas do MySQL e tudo começou a funcionar.

    Exigimos o uso de nomes DNS para todas as conexões, pois nossa solução de recuperação de desastres está em um data center separado e em um farm de VM praticamente idêntico, mas com os endereços IP de todas as máquinas modificados apenas ligeiramente. Se / Quando tivermos um failover completo para o outro data center, todo o software e as comunicações simplesmente "funcionarão", pois a resolução DNS sempre fornecerá o endereço correto com base no data center.

    Você só precisa ter cuidado para não ter DOIS (ou mais) nomes pesquisando de um mesmo endereço IP, pois não há garantia de qual dos dois nomes será retornado - às vezes sua conexão funcionará e outras vezes não t.

    Espero que isso ajude alguém com o mesmo problema!

    Atenciosamente,
    Dave

    • 2
  2. Derek Downey
    2012-01-28T07:15:31+08:002012-01-28T07:15:31+08:00

    Ainda não tenho certeza do que você tentou, mas aqui está o link obrigatório para os documentos do MySQL sobre como o MySQL resolverá nomes de host. Especificamente:

    O thread pega o endereço IP e o resolve para um nome de host (usando gethostbyaddr()). Em seguida, ele pega esse nome de host e o resolve de volta para o endereço IP (usando gethostbyname()) e compara para garantir que seja o endereço IP original.

    Percebi que você está usando slavename.internal.domain. Eu garantiria que gethostbyaddr(ip)no escravo resolvesse o slavename.internal.domain, caso contrário não funcionaria.

    Dito isso, sempre achei a resolução de domínio um grande aborrecimento e realmente não confiável. Portanto, habilito skip-name-resolveo pequeno aumento de desempenho de ignorar o DNS e conceder com base em IPs.

    • 1

relate perguntas

  • Onde posso encontrar o log lento do mysql?

  • Como posso otimizar um mysqldump de um banco de dados grande?

  • Quando é o momento certo para usar o MariaDB em vez do MySQL e por quê?

  • Qual é a diferença entre a replicação do PostgreSQL 9.0 e o Slony-I?

  • Como um grupo pode rastrear alterações no esquema do banco de dados?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como ver a lista de bancos de dados no Oracle?

    • 8 respostas
  • Marko Smith

    Quão grande deve ser o mysql innodb_buffer_pool_size?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    restaurar a tabela do arquivo .frm e .ibd?

    • 10 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Como selecionar a primeira linha de cada grupo?

    • 6 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve