首页 > 数据库 >Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

时间:2023-12-09 20:06:08浏览次数:50  
标签:8.0 jdbc java jar 20 failure mysql jdbc4 com


1、错误原因

项目测试Swagger的时候,接口请求一直在那转,出不来数据,其他的配置都正常呀,我就很纳闷,今天记录一下。

com.mysql.cj.jdbc.exceptions.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 com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174) ~[mysql-connector-java-8.0.20.jar:8.0.20]
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64) ~[mysql-connector-java-8.0.20.jar:8.0.20]
	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:836) ~[mysql-connector-java-8.0.20.jar:8.0.20]
	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:456) ~[mysql-connector-java-8.0.20.jar:8.0.20]
	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246) ~[mysql-connector-java-8.0.20.jar:8.0.20]
	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:197) ~[mysql-connector-java-8.0.20.jar:8.0.20]
	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1513) ~[druid-1.1.9.jar:1.1.9]
	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578) ~[druid-1.1.9.jar:1.1.9]
	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2466) ~[druid-1.1.9.jar:1.1.9]
Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure

这个时候我们就要检查一下我们链接数据库的**url、root、password、**驱动是否正确,经过我的排查原来是我的url链接名不是localhost,真尴尬,改成localhost就成功了。

jdbc:mysql://localhost:3306/mangodb

2、 特殊的情况

2.1、在JDBC URL中使用autoReconnect属性,实际测试时使用了autoReconnect=true&failOverReadOnly=false,网上所说的只对mysql 4之前的版本有效。

2.2、修改MySQL的参数,wait_timeout最大为31536000即1年,在my.cnf中加入:

[mysqld]

wait_timeout=31536000

interactive_timeout=31536000

重启生效,需要同时修改这两个参数。



标签:8.0,jdbc,java,jar,20,failure,mysql,jdbc4,com
From: https://blog.51cto.com/u_12866610/8751464

相关文章

  • pytest + yaml 框架 -59.用例失败重跑机制pytest-rerunfailures
    前言有些接口可能不太稳定,第一次跑的时候由于网络原因或者其它原因失败,但是重新跑2次又成功了。对于这种需要重新跑几次的场景,可以使用用例失败重跑机制,需安装pytest-rerunfailures插件。场景示例失败重跑需要依赖pytest-rerunfailures插件,使用pip安装就行pipinstallp......
  • JDBC针对SQLServer的sendStringParametersAsUnicode=false的验证
    JDBC针对SQLServer的sendStringParametersAsUnicode=false的验证背景部分客户的SQLServer数据库出现了大量死锁的情况.虽然部分客户并没有反馈死锁影响了产品的正常使用但是在大量业务时还是会出现卡顿等的现象基于此,经过微软case的研究,发现是JDBC4.0之后默认为ture的......
  • JDBC连接数据库
    JDBC连接数据库共六步1.Class.forName()加载数据库连接驱动2.DriverManager.getConnection()获取数据连接对象3.根据SQL获取sq|会话对象4.执行SQL,执行SQL前如果有参数值就设置参数值setXXX()5.处理结果集6.释放资源0.前期工作0.0文件jar包下载,配置,删除目前常用的驱动......
  • java_JDBC连接池C3P0的使用
    1、数据库连接池基本介绍1.预先再缓冲池中放入一定数量的连接,当需要建立连接时,只需要从“缓冲池”中取出一个,使用完毕后放回。2.数据库连接池负责分配、管理和释放数据库连接,它允许多个程序重复的使用现有的数据库连接,而不是重新建立一个。3.当应用程序向连接池请求的数量超过最大......
  • MySQL连接异常Communications link failure
     解决方式:增加 testWhileIdle=true&autoReconnect=true&validationQuery=SELECT1url:jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC&createDatabaseIfN......
  • java使用hive-jdbc查询超时:java.sql.SQLException: org.apache.thrift.transport.TTra
     java.sql.SQLException:org.apache.thrift.transport.TTransportException:java.net.SocketTimeoutException:Readtimedout  atorg.apache.hive.jdbc.HiveStatement.execute(HiveStatement.java:262)  atorg.apache.hive.jdbc.HivePreparedStatement.execute(......
  • JavaSE练习,JDBC驱动,基于swing库的带登录功能计算器
    一、前言本次作业是基于上次的计算器功能所做的改进,通过JDBC连接MySQL增加了登录与注册功能,并对计算器所作的运算进行了记录。虽然基于上次的作业所作,但是设计编写的模块大部分与之无关(登录注册自然与计算器无关)。所以本次作业属于再开发而不是运营维护。二、概要设计......
  • Java中的事务——JDBC事务和JTA事务
    简介: 本文来介绍一下J2EE中和事务相关的内容,在阅读本文之前,希望读者对分布式有一定的了解。Java事务的类型有三种:JDBC事务、JTA(JavaTransactionAPI)事务、容器事务。本文来介绍一下J2EE中和事务相关的内容,在阅读本文之前,希望读者对分布式有一定的了解。Java事务的类型有三种:JDB......
  • Spring_2023_11_23_1 Spring--整合JDBC===》JdbcTemplate
    Spring--整合JDBC===》JdbcTemplateListquery(Stringsql,RowMapperrowMapper,@NullableObject...args)Stringsql执行的sql语句,可以使用占位符RowMapper接口:2.1mapRow(ResultSetrs,introwNum):查询出数据的每一行的映射2.1.1ResultSetrs:结果中存储的是一......
  • JavaWeb01-JDBC学习总结
    为什么需要JDBC?JDBC就是使用Java语言来操作关系型数据库的一套API。市场拥有众多的数据库:MySQL、Oracle、DB2等等。不可能每个数据库都重新开发Java代码来适配不同的数据库,那么Sun公司定义一套标准接口来统一操作数据库。其中所谓的MySQL实现类就是MySQL驱动(驱动Jar包)这样就只需要......