Mysql skip-name-resolve

我最近购买了一台新的服务器,并通过WHM Transfer转移了我的所有账户。

问题是,当WHM每天进行备份时,它的输出是诸如

DBD::mysql::st execute failed: There is no such grant defined for user 'abc' on host 'myhostname' 

当我从my.cnf文件中删除skip-name-resolve时,问题就解决了。 坚韧我没有发现任何速度上的差异(当我不添加它),它经常在论坛中提到,添加skip-name-resolve可以优化Mysql性能。

如果有一个专门的服务器,添加skip-name-resolve真的有帮助吗?

这实际上取决于有多less客户端连接到服务器以及多久。 如果你只有一台服务器连接到MySQL(例如本地主机),那么设置这个选项真的没有任何好处,因为MySQL会在一段时间内cachingDNS查询的结果,所以你只会在开始的时候真的招致性能损失。

如果你有很多连接你的MySQL服务器的主机和许多连接,你当然可以看到一个好处(我已经看到在有25个Web服务器碰到一个数据库服务器处理500个/秒的环境中的好处,连接每个Web请求)。

你必须调整所有的授予使用IP地址,而不是主机名,如果你走这条路线,例如解决你的上述问题:

 SHOW GRANTS FOR 'abc'@'myhostname'; 

取出输出,并将主机名更改为IP地址,以基于IP地址创build所有相同的授权。 然后,您可以撤销基于主机的资助。