MySql连接错误:Can't get hostname for your address:

mysql 反响dns mysql address_数据库

1.确定服务是否开启

首先进入计算机管理,打卡服务,确定MySQL服务状态是否为正在运行,如若关闭,即手动打开。


2.重新配置winsock文件

服务是开启的,报错依旧不变,打开CMD,运行netsh winsock reset,重修配置winsock文件,重启电脑。

无意外的话,就能连接上数据库了。如若不能,继续下一步。


3.修改Hosts

在 MySql Server 所在服务器上,修改 Windows 的 hosts 文件,增加一行记录,如:

100.ZZZ.YYY.XXX dummy.ju690.cn

然后在 100.ZZZ.YYY.XXX 机器上用 Python 发起连接请求,经测试,可以正常连接,说明 MySql Server 这下可以通过 getnameinfo() 解析出100.ZZZ.YYY.XXX 的主机名了。

但这种方法很机械

注:修改Hosts的方法,因为现有水平局限,不懂起原理,所以不多加解释。

4.修改MySql 的配置文件 my.ini

首先找到my.ini配置文件的路径,

mysql 反响dns mysql address_数据库_02

将鼠标放在第一个箭头指向的位置,单击,就会出现实例信息,可看到配置文件My.ini的路径。

根据路径即可找到配置文件所在,用记事本打开

在[mysqld]下添加

skip-name-resolve

它将禁止 MySql Server 对外部连接进行 DNS 解析,使用这一选项可以消除 MySql 进行 DNS 解析的时间。

然后重启MySQL,如若依旧报错,再次执行第二步。重启电脑之后,有可能会报错“MySQL连接数据库出现错误:Host '127.0.0.1' is not allowed to connect to this MySQL server”

实际访问数据库配置:jdbc.url=jdbc:mysql://localhost:3306/*****

实际数据设置为只允许localhost访问,经检查发现是MySQL配置文件my.ini中设置了skip-name-resolve,注释之后可以正常访问



废话:

看完之后是不是有点揪心???我开始按照网上解决方案,改配置文件,改hosts,最后依然没解决,到后来想到了刷新一下winsock,刷新之后给我的报错就是本Ip不被允许连接,百度一番之后删除掉了skip-name-resolve,才能连接上MySQL server。hosts文件与my.ini配置文件,我都改回原样,所以我把重新配置winsock给放在了第二步,按理来说执行完第二步就完事了,可我也没尝试过,所以还是附上了另两种解决方案的方法。