MySQL出现MySQLNonTransientConnectionException: No operations allowed after statement closed异常的解决办法

出现异常的原因:

  Mysql在5以后针对超长时间DB连接做了一个处理,Mysql服务器默认的“wait_timeout”是8小时,也就是说一个connection空闲超过8个小时,Mysql将自动断开该connection。所以使用连接池的时候虽然连接对象还在但是链接数据库的时候会一直报这个异常。

解决办法:

  进入MySQL查看设置的时间,show global variables like 'wait_timeout';

1、增加MySQL的 wait_timeout 的时间

windows环境下,修改mysql5的配置文件“my.ini”(mysql5 installation dir),增加一行:wait_timeout=1814400  (修改时间为21天),在Linux下叫my.cnf,该文件位于/etc/my.cnf

或者,登录MySQL,使用SQL语句修改,set global wait_timeout=1000000;

2、在DB连接字符串后面加一个参数。当前链接因为超时断掉了,那么驱动程序会自动重新连接数据库
 jdbc:mysql://localhost:3306/makhtutat?autoReconnect=true
不过Mysql并不建议使用这个方法。因为第一个DB操作失败的后,第二DB成功前如果出现了重新连接的效果。这个失败操作将不会处于一个事务以内,第二DB操作如果成功的话,这个事务将被提交

重新连接后一些用户变量和临时表的信息也会丢失,不推荐。

3、手动处理异常


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]和\[2\]中提到的异常"jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed."是由于连接关闭后仍然执行了数据库操作引起的。引用\[3\]中解释了这个异常的原因,即MySQL默认空闲8小时没有操作会自动断开连接。在C3P0连接池中,如果连接空闲超过8小时,MySQL会断开连接,但C3P0并不知道该连接已经失效。当有客户端请求连接时,C3P0会提供这个失效的连接,从而导致上述异常出现。 解决这个问题的方法是在Spring Boot的application.properties文件中增加DBCP配置。DBCP是Apache Commons DBCP连接池的一种实现,可以用来管理数据库连接。通过配置DBCP的相关参数,可以避免连接空闲超过8小时被MySQL断开的问题,从而解决上述异常。 请注意,具体的DBCP配置参数可能因使用的数据库和连接池的版本而有所不同。你可以根据自己的需求和环境进行相应的配置。 #### 引用[.reference_title] - *1* *3* [解决MySQLNonTransientConnectionException的问题](https://blog.csdn.net/wwwzhouzy/article/details/118710071)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [关于java.sql.SQLNonTransientConnectionException: No operations allowed after connection closed.的解决方案](https://blog.csdn.net/weixin_62338217/article/details/127405066)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值