我正在尝试建立一个Spring启动EC2应用程序来访问一个单独的RDS(mysql)数据库。我创建了数据库ok,并且能够从mysqlworkbench和我在本地计算机上运行的spring boot app访问它。但是,当我将spring boot应用程序部署到EC2时,它无法连接到数据库,请参阅下面的错误日志。
是否有一些我省略的配置允许应用程序与数据库通信? 或者,我如何调试正在发生的事情,有没有办法可以远程调试应用程序?
Caused by: java.net.SocketTimeoutException: connect timed out
at java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:1.8.0_161]
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[na:1.8.0_161]
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[na:1.8.0_161]
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[na:1.8.0_161]
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:1.8.0_161]
at java.net.Socket.connect(Socket.java:589) ~[na:1.8.0_161]
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:211) ~[mysql-connector-java-5.1.45.jar!/:5.1.45]
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:300) ~[mysql-connector-java-5.1.45.jar!/:5.1.45]
... 67 common frames omitted
2018-04-13 17:10:49.481 WARN 28264 --- [ main] o.h.e.j.e.i.JdbcEnvironmentInitiator : HHH000342: Could not obtain connection to query metadata : Could not create connection to database server. Attempted reconnect 3 times. Giving up.
2018-04-13 17:10:49.498 INFO 28264 --- [ main] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.MySQL5InnoDBDialect
答案 0 :(得分:0)
Caused by: java.net.SocketTimeoutException: connect timed out
两个问题可能导致这种情况:
1)RDS附加的安全组入站规则不接受您的EC2实例请求。确保RDS附加安全组 - &gt; &#34;入站&#34;规则允许从 EC2实例访问 RDS端口。
2)RDS本身已经关闭,我怀疑在这种情况下不会。
注意::不要打开入站 - &gt; &#34;端口&#34;整个世界(除了必要的情况)。限制已知IP(或)网络的端口流量。