Eu tenho a configuração MySQL Master / Slave e notei os seguintes avisos nos arquivos de log do mysql nos dois servidores:
Eu verifiquei e as pesquisas de DNS funcionam bem e a maioria desses IPs é da China.
Estou planejando limitar o acesso na porta 3306 no firewall. No entanto, você poderia me ajudar a entender o que eles estão tentando fazer. Eles estão apenas tentando se conectar ao servidor MySQL. Onde posso procurar mais alguns detalhes.
Quando você cria um usuário do MySQL, o username@example.comMySQL precisa fazer uma pesquisa inversa em todos os endereços IP conectados a ele para determinar se eles fazem parte example.com.
Obviamente, não há restrição para a criação de pesquisas reversas; portanto, posso pedir com satisfação ao meu provedor que defina a pesquisa inversa para o meu endereço IP, google.comse eu quiser ... ou example.comse eu souber que é isso que os usuários do seu banco de dados têm. . Isso não me deixa entrar, pois o MySQL faz uma pesquisa direta no domínio retornado para garantir que ele corresponda ao mesmo endereço IP que está se conectando.
Você pode desativar isso com o skip_name_resolveseu my.cnf. Existem muitas boas razões para fazer isso .
O motivo pelo qual você está recebendo esse erro é que o endereço IP em questão não tem pesquisa inversa.
Você também tem atacantes maliciosos da China tentando entrar no seu banco de dados com força bruta. Essa deve ser sua principal prioridade.
pode haver algum problema para o host local ?
— M malaio
Eu não acho que haja uma brecha na segurança porque, se uma pesquisa inversa para algum endereço IP for resolvida localhost, o MySQL ainda fará a pesquisa direta localhostpara garantir que ele corresponda ao endereço IP original. No entanto, como em todas as coisas relacionadas à segurança, não confie apenas em mim. E ainda é melhor desativar a resolução de nomes na sua configuração.
Acho uma péssima idéia expor seus servidores de banco de dados diretamente na internet.
Se você estiver replicando para um host remoto e precisar de acesso à Internet para isso, sugiro que você configure uma VPN entre as duas redes e ligue seus servidores MySQL para ouvir apenas a rede local.
Se os dois hosts estiverem na mesma rede local, você estará seguro para ligar seus servidores mysql a essa rede.
Só fui pego por isso também no Amazon RDS. Eu só queria conectar-me à minha instância de banco de dados de teste (definitivamente não é recomendado a seguir para bancos de dados de produção):
Os grupos de segurança no Amazon RDS funcionam de maneira um pouco diferente das regras normais de firewall para as instâncias do EC2. Se você abrir a porta MySQL para o IP específico, o IP deverá ser reconhecido pelo seu servidor MySQL. Caso contrário, a conexão será recusada. A solução temporária é criar um novo grupo de segurança, ou seja, anyone_can_connect_to_mysqlcom apenas um único item - permita a conexão de entrada MySQL / Aurora em qualquer lugar da Internet e conecte esse grupo de segurança ao seu banco de dados.
Isso remove a verificação de IP das conexões do cliente para que você possa se conectar. Não se esqueça de desanexar a anyone_can_connect_to_mysqlpolítica do banco de dados assim que os problemas de resolução terminarem.
— mosqueteiro
Ao conectar-me ao Mysql remotamente, recebi um erro. Eu recebi este aviso em /var/log/mysqld.log:
Acabei de adicionar esta linha ao /etc/hostsarquivo:
Problema resolvido! sem usar skip-name-resolve, causou alguns erros no meu aplicativo local ao conectar ao mysql.