Could not create connection to database server. Attempted reconnect 3 times. Giving up.

背景:

在公司开发好的程序,到现场部署的时候项目启动时,一直报错,这里记录一下解决的方法。
报错信息:
java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73)
at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:906)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:831)
at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:456)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:197)
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138)
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:358)
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206)
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:477)
at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:560)
at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:115)
at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112)
at com.xxl.job.admin.core.thread.JobScheduleHelper$1.run(JobScheduleHelper.java:68)
at java.lang.Thread.run(Thread.java:748)
Caused by: com.mysql.cj.exceptions.CJCommunicationsException: 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.

分析:

出现上面情况时,说明时mysql数据库连接不上,主要排查三点:
第一点:数据库服务是否成功启动。
第二点:项目配置文件中连接数据库的url, 用户名,密码 ,数据库连接是否书写正确。
第三点:mysql 的数据库连接jar包与mysql的版本号是否匹配。
第四点:排查网络,如果网络不是很好,建议将项目配置文件中的数据库连接超时时间设置大一点。

在现场mysql是启动成功的,因为本地的navicat 客户端是可以成功连接的。所以第一点是没有问题。
关于第二点,我们现场所有人都过来看一下,对比一下,没有问题。(之所有不同的人看,是因为一个人看,有时候会潜意思认为自己写的不会有问题,有时候单词中某个字母写错,是不容易排查出来的)。
关于第三点,我们使用的是mysql5.7.30 使用的 mysql连接jar包是<mysql-connector-java.version>8.0.20</mysql-connector-java.version> 两者之间是匹配的。

在现场我们发现网络信号不是特别好,微信发个消息都很慢。所以考虑到是项目在连接数据库时,在允许超时的时间范围内,没有建立连接。 所以我们将配置文件中设置的超时时间10000 改为了30000 然后启动项目,项目启动成功。

到此 遇到的问题成功解决。 如果你浏览了该文章,对您有所帮助,不妨点个赞。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值