Java MySQL无法从远程客户端连接

Java MySQL无法从远程客户端连接,java,mysql,mysql-workbench,Java,Mysql,Mysql Workbench,我的MySQL服务器运行在IP地址为181.2.3.5的机器上,我有一个名为affablebean的数据库运行在上面。我可以通过同一台机器连接。但是,当我尝试远程访问它以部署java应用程序时,出现了以下错误: 内部异常:java.sql.SQLException:分配连接时出错。原因:无法分配连接,因为:拒绝用户“root”@“181.2.3.4”的访问(使用密码:是) 两个系统都在局域网上。我尝试了以下问题来授予特权: GRANT ALL ON *.* to 'root'@'%' IDENT

我的MySQL服务器运行在IP地址为181.2.3.5的机器上,我有一个名为
affablebean
的数据库运行在上面。我可以通过同一台机器连接。但是,当我尝试远程访问它以部署java应用程序时,出现了以下错误:

内部异常:java.sql.SQLException:分配连接时出错。原因:无法分配连接,因为:拒绝用户“root”@“181.2.3.4”的访问(使用密码:是)

两个系统都在局域网上。我尝试了以下问题来授予特权:

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地址和用户名只是一个占位符来说明


编辑:我可以从工作台访问,但无法从Java程序访问。

您必须使用服务器IP指定端口名


就像hostIP:portNumber

工作台一样,您的java程序与任何其他客户机一样。因此,您需要查看这两个客户端之间是否存在任何设置差异,可能是错误的凭据。

呃,您以root用户身份连接客户端应用程序??检查您的请求是否被任何防火墙拦截。@fge,我已编辑了我的问题:)@a.man nope,我的计算机上没有安装任何防火墙。连接时是否在Java应用程序中传递凭据?你能告诉我们你用Java连接数据库的代码吗?