问题描述
在本地 Windows 开发机(主机名为 WIN-OGL3PGSJRF9)上通过 Java 应用连接远程 MySQL 服务器时,报错如下:
1130 - Host 'WIN-OGL3PGSJRF9' is not allowed to connect to this MySQL server
该错误导致应用无法连接数据库,开发调试中断。
错误原因
MySQL 的用户权限系统由 用户名(user) + 允许连接的主机(host) 共同组成。例如:
'root'@'localhost':仅允许本机连接'app'@'192.168.1.%':允许某网段连接'user'@'%':允许任意主机连接
而当前 MySQL 服务器中 没有为你的客户端主机(WIN-OGL3PGSJRF9 或其 IP)创建对应的访问权限,因此拒绝连接。
⚠️ 注意:即使你使用的是正确的用户名和密码,只要
host不匹配,MySQL 也会直接拒绝连接,并抛出 Error 1130。
解决方案(四步走)
第一步:登录 MySQL 服务器(需 root 权限)
在 MySQL 所在服务器上执行:
mysql -u root -p
第二步:查看现有用户权限
SELECT host, user FROM mysql.user;
典型输出
+-----------+-------+
| host | user |
+-----------+-------+
| localhost | root |
| 127.0.0.1 | root |
+-----------+-------+
你会发现:没有 % 或你的客户端 IP,所以外部连接被拒。
第三步:创建允许远程连接的用户(推荐方式)
切勿直接开放
root@%(生产环境高危!)

