Spring Boot连接MySQL长时间不连接后报错`com.mysql.cj.core.exceptions.ConnectionIsClosedException: No operations allowed after connection closed.`的解决办法

报错:com.mysql.cj.core.exceptions.ConnectionIsClosedException: No operations allowed after connection closed.

添加 &autoReconnect=true 无济于事,此选项好像仅对 MySQL 5之前的版本有效。

原因

Mysql服务器默认的“wait_timeout”是8小时,也就是说一个connection空闲超过8个小时,Mysql将自动断开该connection。这就是问题的所在,在C3P0 pools中的connections如果空闲超过8小时,Mysql将其断开,而C3P0并不知道该connection已经失效,如果这时有Client请求connection,C3P0将该失效的Connection提供给Client,将会造成上面的异常。

解决办法

http://www.cnblogs.com/hemingwang0902/archive/2012/03/15/2397620.html

临时解决办法

因为上面的办法需要修改数据库,但是我不想改数据库。所以:

修改一下连接MySQL的驱动(修改application.properties):

spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver

改为

spring.datasource.driverClassName=com.mysql.jdbc.Driver

原文地址:https://www.cnblogs.com/zifeiy/p/9282230.html

时间: 2024-10-10 20:23:08

Spring Boot连接MySQL长时间不连接后报错`com.mysql.cj.core.exceptions.ConnectionIsClosedException: No operations allowed after connection closed.`的解决办法的相关文章

myBatis连接MySQL报异常:No operations allowed after connection closed.Connection was implicitly closed

网站运行一个晚上,早上来上班,发现报错: ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed. 网上查了下,由于使用了默认配置,空闲超过8小时,自动断开该连接 我使用的是mybatis的默认连接池,于是把该配的,都配置上.datasource的属性

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.

ERROR - No operations allowed after connection closed. org.hibernate.exception.JDBCConnectionException: could not execute query at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:74) at org.hibernate.exception.JDBCExceptionHe

数据库迁移后报错提示MySQL Error:Can''t find file errno: 13 - Permission denied的解决方法

用户MYSQL数据库迁移后,遇到报错MySQL Error:Can't find file (errno: 13 - Permission denied)使用以下指令重新设置所有者和权限,依然不能解决. [[email protected] ~]# chown 501:501 -R /www/server/data/comdb [[email protected]~]# chmod 666 -R /www/server/data/comdb [[email protected]~]# servi

Spring Boot连接DB2查询结果时报错“java.lang.AbstractMethodError: com.ibm.db2.jcc.t4.b.isValid(I)Z”的解决办法

关于在maven项目中如何添加DB2的坐标的详细,见:https://www.cnblogs.com/zifeiy/p/7918554.html Spring Boot项目中的application.properties文件内容如下: # DB Configuration for DB2 spring.datasource.url=jdbc:db2://localhost:50000/SAMPLE spring.datasource.username=zifeiy spring.datasour

php连接docker启动的mysql容器报错:(HY000/2002): Connection refused的解决办法

vim libraries/config.default.php 查找到localhost/127.0.0.1字符[一般来说默认都是localhost] :/localhost 替换成容器名,例如我定义的名称是mysql 原始:$cfg['Servers'][$i]['host'] = 'localhost'; 修改:$cfg['Servers'][$i]['host'] = 'mysql'; 原文地址:https://www.cnblogs.com/todarcy/p/11075724.htm

JPA连接PG数据库时间类型查询报错的修改

PG数据库中的时间格式规范: https://blog.csdn.net/sky_limitless/article/details/79527665 to_data 转换为 普通的时间格式 to_timestamp 转换可为 时间戳格式 PG数据库中没有DATE类型的数据,时间查询职能是timestamp类型的,为了兼容date和timeStamp类型的数据,需要加注解进行设置.,但是pg的时间查询类型只能是timeStamp的数据格式: http://www.itkeyword.com/do

Oracle 11gR2 RAC 数据库不能连接(ORA-12537TNS:connection closed)的解决

问题: SQL> conn system/[email protected] ERROR:ORA-12537: TNS:connection closed Warning: You are no longer connected to ORACLE. 解决: chmod 6751 $ORACLE_HOME/bin/oracle

当很多连接到你的数据库时,报这种错误“已超过了锁请求超时时段” SqlServer数据库正在还原的解决办法

1)管理器不会主动刷新,需要手工刷新一下才能看到最新状态(性能方面的考虑) 2)很少情况下,恢复进程被挂起了.这个时候假设你要恢复并且回到可访问状态,要执行:  RESTORE database   dbname with recovery 这使得恢复过程能完全结束. 3)如果你要不断恢复后面的日志文件,的确需要使数据库处于“正在还原状态”, 这通常是执行下面命令:  RESTORE database dbname with norecovery

Spring boot 全局配置 properties或者yml文件报错

主要问题是没有扫描到配置文件 在pom文件里面<build>    </build>中加上以下代码就可以保证能扫描到了 <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.yml</include> <include>**/*.properties</include