gpt4 book ai didi

java - 无法与远程机器上的 MySQL 数据库建立连接

转载 作者:行者123 更新时间:2023-11-30 22:33:06 25 4
gpt4 key购买 nike

我正在笔记本电脑上开发 Java/Spring/Hibernate/CXF/MySQL SOAP 网络服务和相应的网络 Spring MVC 客户端。计划是最终将生成的两个 war 文件移动到我在 mybiz.com 托管的远程服务器。

笔记本电脑和服务器都有一个 MySQL 版本 5.x.x 的实例笔记本电脑和服务器都有一个 root@localhost 用户(duh)服务器还有另外三个用户:zzdb_admin@%zzdb_admin@localhostzzdb_admin@mybiz.com都具有相同的密码 remotepw,并且都已授予和刷新了各种特权。

MySQL 的两个实例都有一个名为 zzdb 的数据库。MySQL 的两个实例都将@@session.old_passwords、@@global.old_passwords 和@@global.secure_auth 设置为 0;在所有情况下,密码的哈希值都是 41 个字符宽。

当直接登录到远程服务器时,我可以手动登录到两台机器上的所有帐户

mysql --user=root --password=remoterootpw
mysql --user=zzdb_admin --password=remotepw
mysql --host=localhost --user=zzdb_admin --password=remotepw

在笔记本上我可以登录本地的mysql

mysql --user=root --password=localrootpw
mysql --host=mybiz.com --user=zzdb_admin --password=remotepw

所以所有的用户和密码都是正确的。他们的哈希值都是 41 个字符。重要提示:请注意,这最后证明可以与远程计算机上的实例建立连接。

webservice' pom 的 mysql-connector-java 版本为 5.1.8。

现在变得奇怪了。在 web 服务的属性文件中使用这些行:

hibernate.connection.url=jdbc:mysql://localhost:3306/zzdb
hibernate.connection.username=root
hibernate.connection.password=localrootpw

webapp 可以连接到本地数据库实例,一切正常。但是只将这三行更改为

hibernate.connection.url=jdbc:mysql://mybiz.com:3306/zzdb
hibernate.connection.username=zzdb_admin
hibernate.connection.password=remotepw

抛出可怕的“用户 'zzdb_admin'@'localhost' 拒绝访问”错误

这让我拔掉了剩下的几根头发。看起来我没有遗漏任何东西,而且所有内容都拼写正确。有人知道发生了什么事吗?

TIA,

仍在学习史蒂夫

附录:尝试一种不同的、更简单的方法成功了!

Class.forName("com.mysql.jdbc.Driver");
String connectionUrl = "jdbc:mysql://mybiz.com/zzdb?user=zzdb_admin&password=remoteapw";
Connection conn = DriverManager.getConnection(connectionUrl);

现在怎么样?唯一改变的是连接方式。疯狂

最佳答案

MySQL 远程链接有一个绑定(bind)地址。你应该评论它。可以引用this blog .

关于java - 无法与远程机器上的 MySQL 数据库建立连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33312680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com