美文网首页
navicat远程连接宝塔的mysql很卡问题解决

navicat远程连接宝塔的mysql很卡问题解决

作者: Jalen_4bd7 | 来源:发表于2020-12-26 16:20 被阅读0次

    在mysql的配置文件加

    [mysqld]
    skip-name-resolve
    

    如果没有安装到宝塔,需要自己找一下mysql的配置文件
    在linux下配置文件是/etc/my.cnf,在windows下配置文件是mysql安装目录下的my.ini文件。
    还是找不到的话可以用 find / -name my.cnf 命令查找

    关于 mysql skip-name-resolve 的解释

    原因是由于mysql对连接的客户端进行DNS反向解析。
    有2种解决办法:
    1,把client的ip写在mysql服务器的/etc/hosts文件里,随便给个名字就可以了。
    2,在 my.cnf 中加入 –skip-name-resolve 。
    对于第一种方法比较笨,也不实用,那么 skip-name-resolve 选项可以禁用dns解析,但是,这样不能在mysql的授权表中使用主机名了,只能使用IP。
    我理解mysql是这样来处理客户端解析过程的,
    1,当mysql的client连过来的时候,服务器会主动去查client的域名。
    2,首先查找 /etc/hosts 文件,搜索域名和IP的对应关系。
    3,如果hosts文件没有,则查找DNS设置,如果没有设置DNS服务器,会立刻返回失败,就相当于mysql设置了skip-name-resolve参数,如果设置了DNS服务器,就进行反向解析,直到timeout。

    所谓反向解析是这样的:
    mysql接收到连接请求后,获得的是客户端的ip,为了更好的匹配mysql.user里的权限记录(某些是用hostname定义的)。
    如果mysql服务器设置了dns服务器,并且客户端ip在dns上并没有相应的hostname,那么这个过程很慢,导致连接等待。

    添加skip-name-resolve以后就跳过着一个过程了。

    第二种解决方案:

    在navicat编辑链接,勾选保持链接


    image.png

    相关文章

      网友评论

          本文标题:navicat远程连接宝塔的mysql很卡问题解决

          本文链接:https://www.haomeiwen.com/subject/dcegnktx.html