【发布时间】:2013-06-13 06:43:46
【问题描述】:
我的 MySQL 服务器在 IP 地址为 181.2.3.5 的机器上运行,并且我有一个名为 affablebean 的数据库在其上运行。我可以通过同一台机器进行连接。但是,当我尝试远程访问它以部署 java 应用程序时,却出现以下错误:
内部异常:java.sql.SQLException:分配连接时出错。原因:无法分配连接,因为:用户'root'@'181.2.3.4'的访问被拒绝(使用密码:YES)
两个系统都在 LAN 上。我尝试了以下查询来授予特权:
GRANT ALL ON *.* to 'root'@'%' IDENTIFIED BY 'sql123';
flush privileges;
还有下面的东西:
GRANT ALL ON *.* to 'root'@'181.2.3.4' IDENTIFIED BY 'sql123';
flush privileges;
但我仍然遇到同样的错误,我尝试重新启动 mysql 服务但它仍然不接受连接。
顺便说一句,服务器运行的是 Windows XP,客户端运行的是 Windows 7。我还尝试了以下查询:
mysql> use mysql;
mysql> SELECT host FROM user WHERE user = 'root';
它会正确返回我的 IP 地址。但仍然是同样的错误。谁能指导我?我从各种 SO 问题中尝试了上述解决方案。
注意:上面的IP地址和用户名只是一个占位符来说明。
编辑:我可以从 Workbench 访问,但我无法从 Java 程序访问。
【问题讨论】:
-
呃,你以 root 身份与客户端应用程序连接??
-
检查您的请求是否被任何防火墙拦截。
-
@fge,我已经编辑了我的问题 :)
-
@A.man 不,我的机器上没有安装任何防火墙。
-
连接时是否在 Java 应用程序中传递凭据?您能否向我们展示您用于从 Java 连接到数据库的代码?
标签: java mysql mysql-workbench