远程数据库未与 Java 应用程序连接

Posted

技术标签:

【中文标题】远程数据库未与 Java 应用程序连接【英文标题】:Remote database not connecting with Java app 【发布时间】:2021-07-15 08:16:28 【问题描述】:

我有一个 java 项目,为此,我需要一个远程数据库,我为公共 IP 购买了一个 aws 实例,使用 phpMyAdmin 安装了 mysql 但数据库没有通过我的公共 IP 与项目连接,但如果我使用 ngrok端口转发然后它正在与数据库连接,其产生的错误是:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

请帮忙!!

Working with Ngrok

Not working with public ip

【问题讨论】:

了解网络和 IP 地址的概念,除非您通过防火墙打开端口,否则您的实例公共 IP 不会为您的数据库服务,出于安全原因,您首先不应该这样做。此外,如果数据库在同一台机器上,您可以简单地使用 localhost 或 127.0.0.1 作为您的 IP 地址。如果不是,我们将需要有关该主题的更多信息。 为了清楚起见,您可以使用 phpMyAdmin 手动对数据库执行一些管理任务,但您的 Java 项目将直接连接到数据库(或者更好,连接到您编写的 API 端点)存在于服务器上); phpMyAdmin 不是您的应用程序连接的接口。看来您已经可以理解了,但是对于可能遇到类似问题的其他人来说,重要的是要意识到 phpMyAdmin 不是用于外部应用程序的 API。 【参考方案1】:

确保数据库具有公共端点(例如,ping 它以查看它具有公共地址)。然后只需检查安全组权限。

【讨论】:

以上是关于远程数据库未与 Java 应用程序连接的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 应用程序未与 Cloud Config Server 连接

Appium 服务器未与模拟器建立连接

aioMySQL 未与 python 连接

通知未与应用程序 android 关闭?

数组未与 tableView(numberOfRowsInSection) 方法连接

tigervnc 未与本地主机连接