You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

连接MySQL数据库时主机名不符导致权限拒绝的问题求助

问题分析与解决方案

先梳理下你的环境和遇到的问题:

  • 完整计算机名称:AIS127.ABC.com
  • 域:ABC.com
  • MySQL已配置用户条目:主机:ais127.ABC.com,用户:root

你遇到的连接异常日志如下:

java.sql.SQLException: Cannot create PoolableConnectionFactory (Access denied for user 'root'@'ais126.ABC.com' (using password: YES))
at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2195)
at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:1945)
at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1412)
at common.DBManager.getConnection(DBManager.java:80)
at common.DBManager.getRecCSVInfo(DBManager.java:238)

核心问题拆解

一眼就能看出关键矛盾:你在MySQL里给root@ais127.ABC.com开了权限,但你的应用实际是以root@ais126.ABC.com的身份发起连接请求,MySQL自然会拒绝这个未授权的访问。这说明你的机器/应用使用的主机名和你预期的AIS127不匹配,大概率是主机名解析、应用配置或本地网络设置出了问题。

两种可行解决方案

方案1:直接给root@ais126.ABC.com授权

如果确认ais126.ABC.com是你当前机器的有效身份(比如存在主机别名、DNS解析指向),可以直接在MySQL中补全权限:

-- 切换到系统权限库
USE mysql;
-- 授予对应权限(示例为全权限,可根据实际需求调整范围)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'ais126.ABC.com' IDENTIFIED BY '你的数据库密码';
-- 刷新权限使配置生效
FLUSH PRIVILEGES;

方案2:排查并修正主机名/应用配置

如果ais126.ABC.com不是你预期的主机名,建议按以下步骤排查:

  • 验证本地主机名:Windows执行cmd输入hostname,Linux执行hostname -f,确认输出是否为AIS127.ABC.com
  • 检查应用连接配置:查看DBManager类或相关配置文件(如db.properties),确认数据库连接URL中的主机参数是否误写为ais126
  • 排查DNS/hosts文件:检查本地hosts文件或DNS服务器,确认AIS127.ABC.com的解析记录是否被错误指向ais126

内容的提问来源于stack exchange,提问作者pooja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:48:04