zoukankan      html  css  js  c++  java
  • 【DataBase】mysql连接错误:Cannot get hostname for your address

    问题

      

      环境:win7 + 64Bit + 本地mysql5.6  

      问题:navicat连接本地mysql数据库,提示“Cannot get hostname for your address”,但是连接其他远程mysql均没有问题,排除navicat客户端的问题。

      试验:将localhost修改为本地ip:127.0.0.1,不起作用。

    解决方案

      

    方案一:

      修改mysql安装目录下的配置文件my.ini或者my-default.ini的节点[mysqld]: (例如:C:Program FilesMySQLMySQL Server 5.6my.ini)

    [mysqld]

    skip-name-resolve

    解释:
    跳过DNS反向解析;mysql接收到连接请求后,获得的是客户端的ip,为了更好的匹配mysql.user里的权限记录(某些是用hostname定义的)。
    如果mysql服务器设置了dns服务器,并且客户端ip在dns上并没有相应的hostname,那么这个过程很慢,导致连接等待。
    添加skip-name-resolve以后就跳过这样一个过程。
    修改完毕之后,重启mysql服务。

    方案二:

      修改mysql服务器上的host文件,新增client的ip和hostname,如下所示:

    xxx.xxx.xxx.xxx testhostname

    方案三:

      修改本地sql服务的登录用户为本地系统账户,如下所示:

    总结

       1.最实用最方便的是方案一,但是有时候方案一并不能起作用,比如我解决本地mysql报错方式用的是:方案一和方案三。单纯一种都不可以实现。

       2.方案二是最笨的一种方式,但是比较死板,每次都得新加一行ip和hostname的对应信息,所以不推荐使用。

  • 相关阅读:
    HDU 5213 分块 容斥
    HDU 2298 三分
    HDU 5144 三分
    HDU 5145 分块 莫队
    HDU 3938 并查集
    HDU 3926 并查集 图同构简单判断 STL
    POJ 2431 优先队列
    HDU 1811 拓扑排序 并查集
    HDU 2685 GCD推导
    HDU 4496 并查集 逆向思维
  • 原文地址:https://www.cnblogs.com/ShadowFiend/p/6050058.html
Copyright © 2011-2022 走看看