关于mysql的远程连接速度慢得问题. (反向解析, skip-name-resolve)

来源:互联网 发布:快递员工资知乎 编辑:程序博客网 时间:2024/04/29 22:26

这个问题困扰我好长时间.

今天才能解决.

现象 :

连接数据库离奇的慢, 不过一旦连接之后, 操作数据库是非常快的.

每次连接速度都不一样, 时慢时快.


解决方法:

在mysql的配置文件my.ini文件  [mysqlld]加上skip-name-resolve.

或者给linux的hosts文件加上客户端ip 域名信息, 域名信息随便写.也可以解决, 但这个不是最终解决方法, 一旦客户端ip有变更,或者其他客户端连接, 连接还是会很慢的.


这是因为mysql的权限是用户名@域名信息来管理导致的.

我的数据库服务器和WAS服务器在同一个网段的其他服务器上.

每次连接数据库的时候, MYSQL会根据请求的IP地址到hosts文件找该ip地址的域名信息.

然后再上DNS服务器反响解析该IP地址的域名信息.

再拿这个域名信息到权限表做判断有没有权限.

当从DNS服务器反响解析TimeOut之后(因为局域网IP地址是在DNS上是找不到的... 所以是一直等待状态, 最终timeout). 才被继续往下执行.

所以导致连接慢, 但是一旦连接起来操作数据库很快.


用skip-name-resole参数是取消反向解析的步骤.

这样会导致权限管理这一块不能用域名信息来管理了. 比如 user@www.baidu.com. 只能用ip来取代了.


以上只是个人的理解.......仅供参考吧!!

可能还有其他原因导致连接速度变慢..


原创粉丝点击