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的对应信息,所以不推荐使用。

  • 相关阅读:
    Android广播接收器和Activity间传递数据
    Android广播接收器里弹出对话框
    Android本地广播
    setSupportActionBar()方法报错
    exec使用小计
    关于NSA的EternalBlue(永恒之蓝) ms17-010漏洞利用
    20154312 曾林 ExpFinal CTF Writeup
    20154312 曾林 EXP9 Web安全基础
    20154312 曾林 Exp8 web基础
    20154312 曾林 EXP7 网络欺诈防范
  • 原文地址:https://www.cnblogs.com/ShadowFiend/p/6050058.html
Copyright © 2011-2022 走看看