【问题标题】:Spring JPA problems AWS Ec2 & RDSSpring JPA 问题 AWS Ec2 和 RDS
【发布时间】:2018-06-21 01:26:06
【问题描述】:

我尝试在 AWS EC2 Ubuntu 服务器上部署我的 Spring 应用程序,到目前为止一切顺利。 我的 Mysql 数据库是使用 RDS 创建的,我可以在其中连接例如 SequelPro 以及 IntelliJ(在本地运行服务器但使用外部数据库时)

当我想在 EC2 Ubuntu 系统上运行服务器时,我会使用

java -jar

仅用于测试目的。 (我知道我以后必须将其安装为服务)

但过了一段时间,服务器启动时出现此错误

> 018-06-20 16:26:37.122 ERROR 12116 --- [           main] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Exception during pool initialization.

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_171]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_171]
.
.
.
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_171]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_171]
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_171]
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_171]
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:425) ~[mysql-connector-java-5.1.46.jar!/:5.1.46]
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:990) ~[mysql-connector-java-5.1.46.jar!/:5.1.46]
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:342) ~[mysql-connector-java-5.1.46.jar!/:5.1.46]
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2188) ~[mysql-connector-java-5.1.46.jar!/:5.1.46]
    at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2037) ~[mysql-connector-java-5.1.46.jar!/:5.1.46]
    ... 91 common frames omitted
Caused by: java.net.SocketTimeoutException: connect timed out
    at java.net.PlainSocketImpl.socketConnect(Native Method) ~[

任何想法是什么导致了问题? 端口在 RDS 和 EC2 中是开放的...

RDS 安全组定义如下: 入站:

出站:

【问题讨论】:

  • 似乎附加到 RDS 的安全组不允许来自您的 EC2 实例的流量。你检查了吗?
  • 编辑了开始帖子中的屏幕截图。可以从我的本地计算机访问数据库,那么为什么不能从 EC2 访问它?
  • 有一种方法可以限制与特定 IP 的通信,这可以只启用您的本地计算机,但不能启用 EC2。但是,根据更新的屏幕截图,您的安全组配置为完全开放并且应该可以访问(顺便说一下,开放端口在安全性方面不是一个好的做法)。
  • 是的,我知道这对安全性不利,我只想运行,然后我将配置所有特定于安全性的东西。还有其他建议吗?
  • 您是否有任何特殊设置,例如私有 VPC(或)路由表等?

标签: java spring amazon-web-services amazon-ec2


【解决方案1】:

在尝试重新安装等几个小时后,我忘记更改连接字符串。我不知道为什么它仍然使用错误的连接字符串在本地工作,但在 ec2 上它现在可以工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-28
    • 2018-07-22
    • 2015-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-05
    • 2018-12-21
    相关资源
    最近更新 更多