qq_42554719
旅人杰
2021-03-09 14:27
采纳率: 100%
浏览 998
已采纳

求解决困扰几天了:数据库连接超时: Connection timed out: connect

报错信息:Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure

 

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) ~[mysql-connector-java-8.0.23.jar:8.0.23]
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) ~[mysql-connector-java-8.0.23.jar:8.0.23]
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89) ~[mysql-connector-java-8.0.23.jar:8.0.23]
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63) ~[mysql-connector-java-8.0.23.jar:8.0.23]
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73) ~[mysql-connector-java-8.0.23.jar:8.0.23]
	at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:903) ~[mysql-connector-java-8.0.23.jar:8.0.23]
	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:828) ~[mysql-connector-java-8.0.23.jar:8.0.23]
	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:453) ~[mysql-connector-java-8.0.23.jar:8.0.23]
	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246) ~[mysql-connector-java-8.0.23.jar:8.0.23]
	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) ~[mysql-connector-java-8.0.23.jar:8.0.23]
	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:156) ~[druid-1.1.16.jar:1.1.16]
	at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218) ~[druid-1.1.16.jar:1.1.16]
	at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:150) ~[druid-1.1.16.jar:1.1.16]
	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1598) ~[druid-1.1.16.jar:1.1.16]
	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1662) ~[druid-1.1.16.jar:1.1.16]
	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2601) ~[druid-1.1.16.jar:1.1.16]
Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure

已确定信息:服务器Mysql版本:8.0.23,项目mysql-connecter..版本:8.0.23

                     mysql过期时间已经已经设为最大:wait_timeout | 31536000;interactive_timeout | 31536000

                     navicat连接数据库正常,端口开放,防火墙关闭

 

 

求求怎么解决,困扰几天了

 

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

13条回答 默认 最新

  • qq_37083863
    三岁丫 2021-03-09 14:42
    已采纳

    你写个简单的 demo,然后连一下这个数据库试试呢,就用 DriverManager.getConnection(url, username, password) 试试。先看看是环境还问题,还是其他问题

    点赞 评论
  • qq_42554719
    旅人杰 2021-03-09 15:02

    点赞 1 评论
  • technologist_08

    本地能 telnet 通数据库的服务地址吗

    点赞 评论
  • technologist_07

     1. 确认连接参数,和实际用的包版本。参照官网https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-versions.html 
    确认使用官网对应的连接版本。
    2. 贴出更多包版本信息,连接参数配置。

    点赞 评论
  • qq_39503134
    纯白微风 2021-03-09 14:52
    driver-class-name: com.mysql.cj.jdbc.Driver
    连接加上serverTimezone=UTC
    
    点赞 评论
  • qq_42554719
    旅人杰 2021-03-09 14:52

    点赞 评论
  • a1767028198
    a1767028198 2021-03-09 15:07

    Communications link failure,这个鬼东西之前我们是服务器不稳定,重启数据库就行了

    点赞 评论
  • qq_25376897
    qq_25376897 2021-03-09 15:15

    服务,MySQL 重新启动

    点赞 评论
  • l759692959
    l759692959 2021-03-09 15:51

    3306端口是不是没有开放

    点赞 评论
  • qq_33507618
    张龙飞——1 2021-03-09 17:28

    mysql命令执行,使其可以远程访问:

    grant all privileges on *.* to 'root'@'%' identified by '123' with grant option;
    FLUSH PRIVILEGES;

    点赞 评论
  • wangyijie521
    Run_the_ant 2021-03-09 18:33

    感觉你这是有配置SSH代理吧? 你用连接工具连的时候有配置SSH代理的话就肯定连不上的,如果一定要本地连接,可以使用一个本地代理软件;

    比如:PuTTY

    https://blog.csdn.net/wuchenlhy/article/details/79643590 可以搜索一下试用方式

    点赞 评论
  • summer_du
    summer_du 2021-03-27 09:15

    ping不通啊,楼主解决了没有

    点赞 评论
  • chen462488588
    好烦吃不胖 2021-03-10 09:29

    首先你要确保在服务器本地上执行mysql -h xxx.xxx.xx.xx -p 3306 -uroot -p 能连接上,如果这个都连接不上就不要在代码那折腾了,肯定是你mysql权限问题。

    点赞 评论

相关推荐