我有MySQL的主/从设置,我已经注意到两个服务器上的MySQL日志文件中的以下警告:
[Warning] IP address 'xxx.xxx.xxx.xxx' could not be resolved: Name or service not known
我查过了,DNS查找工作正常,大部分IP都来自中国。
我打算限制在防火墙端口3306上的访问,但是请你帮我理解他们正在尝试做什么。 他们只是试图连接到MySQL服务器。 我可以在哪里find更多的细节。
谢谢
当您创buildMySQL用户[email protected]
MySQL必须对连接到它的每个IP地址进行反向查找,以确定它们是否是example.com
一部分。
当然,创build反向查找没有任何限制,所以我可以很高兴地要求我的提供商将我的IP地址的反向查找设置为google.com
如果我需要的话…或example.com
如果我碰巧知道这是什么你的数据库中的用户有。 这不会让我进来,因为MySQL然后在返回的域上进行正向查找,以确保它匹配连接的相同IP地址。
你可以在my.cnf
中用skip_name_resolve
closures它。 这样做有很多好的理由 。
你得到这个错误的原因是有问题的IP地址根本没有反向查找。
你也有来自中国的恶意攻击者企图闯入你的数据库。 这应该是你的首要任务。
我认为这是一个非常糟糕的想法,直接在互联网上暴露你的数据库服务器。
如果你正在复制到远程主机,并需要互联网访问来实现,我build议你在两个networking之间build立一个VPN,绑定你的MySQL服务器,只听本地networking。
如果你的两个主机都在同一个本地networking上,你将安全地绑定你的mysql服务器到那个networking。
当远程连接到Mysql时,出现错误。 我在/var/log/mysqld.log
有这个警告:
[Warning] IP address 'XXXX' could not be resolved: Temporary failure in name resolution
我只是将这一行添加到/etc/hosts
文件中:
XXXX some_name
问题解决了! 没有使用skip-name-resolve
,当连接到mysql时,它在我的本地应用程序中导致了一些错误。
刚刚被Amazon RDS抓到了。 我只想连接到我的testing数据库实例(以下是绝对不build议生产数据库):
Amazon RDS中的安全组的工作原理与EC2实例的正常防火墙规则不同。 如果您为特定IP打开MySQL端口,则IP必须由您的MySQL服务器识别。 如果没有连接被拒绝。 临时解决scheme是创build一个新的安全组,即anyone_can_connect_to_mysql
只有一个项目 – 允许任何地方从互联网入站连接MySQL / Aurora并将此安全组附加到您的数据库。
Inbound ----------------------------------------- | MYSQL/Aurora | TCP | 3306 | 0.0.0.0/0 | -----------------------------------------
这将从客户端连接中删除IP检查,以便您可以自由连接。 一旦解决问题结束,请不要忘记从数据库中分离出anyone_can_connect_to_mysql
策略。