首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS RDS连接数据库错误: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链路故障

问AWS RDS连接数据库错误: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链路故障
EN

Stack Overflow用户
提问于 2018-04-25 02:39:25
回答 2查看 6.3K关注 0票数 2

我正尝试在AWS linux实例上部署我的springboot应用程序,但我一直收到以下错误:

代码语言:javascript
复制
2018-04-24 18:15:27.777  INFO 24020 --- [ost-startStop-1] 

o.s.b.w.servlet.ServletRegistrationBean  : Mapping servlet: 'dispatcherServlet' to [/]
2018-04-24 18:15:28.771 ERROR 24020 --- [main] o.a.tomcat.jdbc.pool.ConnectionPool: Unable to create initial connections of pool.

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.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_161]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_161]

... 

2018-04-24 16:58:57.522  WARN 23780 --- [main] o.s.b.a.orm.jpa.DatabaseLookup : Unable to determine jdbc url from datasource

org.springframework.jdbc.support.MetaDataAccessException: Could not get Connection for extracting meta data; nested exception is org.springframework.jdbc.CannotGetJdbcConnectionException: 
Could not get JDBC Connection; nested exception is com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

下面是我创建applications.properties文件的方式:

代码语言:javascript
复制
#database config
spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://****-west-1.rds.amazonaws.com:3306/DevManagementDB
spring.datasource.username=root
spring.datasource.password=mypassword
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
spring.jpa.hibernate.ddl-auto=update

奇怪的是,当我在本地机器上运行应用程序时,我可以从这个springboot应用程序连接到我的RDS数据库。当我尝试将应用程序部署到AWS上的linux实例时,它失败了,并且我得到了上面的错误。

EN

回答 2

Stack Overflow用户

发布于 2019-08-24 12:03:43

如果您的数据库是RDS实例,请确保访问数据库的设备的公共IP地址包含在RDS实例的安全组中。另外,请确保相应VPC安全组的入站通道中包含公网IP地址。

票数 0
EN

Stack Overflow用户

发布于 2019-01-09 22:38:14

我也遇到过类似的问题。我必须从/etc/mysql/mysql.conf.d/mysqld.cnf更新我的mysql额外参数。

停止mysql服务器sudo systemctl stop mysql.service

需要更新

bind-address = 0.0.0.0 // replace 0.0.0.0 with required ip, 0.0.0.0 allows all ip

启动mysql服务器sudo systemctl start mysql.service

还需要创建一个具有该ip访问权限的用户,在mysql中添加权限

代码语言:javascript
复制
mysql > CREATE USER 'user_name'@'%' IDENTIFIED BY 'PASSWORD'; // replace % with appropriate IP 

mysql > CREATE USER 'user_name'@'%' IDENTIFIED BY 'PASSWORD'; // replace % with appropriate IP

mysql > GRANT ALL PRIVILEGES ON *.* TO 'user_name'@'%' WITH GRANT OPTION; // replace % with appropriate IP

mysql > FLUSH PRIVILEGES;

希望这能帮助到一些人

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50008728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档