"Host 'xxx' is not allowed to connect to this MySQL server":

本文介绍了MySQL远程连接失败的两种常见错误及解决方法。一种是因权限设置导致的连接失败,可通过更新用户表或授权来解决;另一种是由于MySQL服务器无法解析客户端主机名导致的问题,可以通过修改Hosts文件或配置文件来避免主机名解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java.sql.SQLException:  null, message from server: "Host 'xxx' is not allowed to connect to this  MySQL server":

表示该对象不是远程对象,不能通过该对象远程访问数据

解决

方案一:改表:

use  mysql ;select user,host,password from user;

update  user set host = '%' where user='root';

方案二:授权法:

例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。 
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED  BY 'mypassword' WITH GRANT OPTION; 
如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码 
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'  IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

 

MySql连接错误:Cannot  get hostname for your address

简单解释


MySQL server received a request from you to allow you  to connect to the database. So next thing it tried to do is to check what name  is bound to your IP address (name resolution) andit failed to do so. So  it just denied you access.

可以这么理解mysql处理客户端解析的过程:
1,当 mysql client 发起连接请求时,MySql Server 会主动去查 client  的主机名。
2,首先查找Windows系统目录下 /etc/hosts  文件,搜索域名和IP的对应关系。
3,如果hosts文件没有,则查找DNS设置,如果没有设置DNS服务器,会立刻返回失败;如果设置了DNS服务器,就进行反向解析,直到timeout

 

解决办法

第一种方法  修改Hosts

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

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

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

但这种方法很机械,所以一般采用下面这种方法。

第二种  修改MySql 的配置文件 my.ini

The  solution:
Just add skip-name-resolve option to your  MySQL configuration file (my.ini).

在  MySql Server 的配置文件 My.ini 中,增加如下两行:

[mysqld]

skip-name-resolve

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

但需要注意,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值