MySQLNonTransientConnectionException: No operations allowed after connection closed 解决方法

1 篇文章 0 订阅
1 篇文章 0 订阅

初步使用Eclipse 的 data source explorer 窗口的时候,工程量不大、且偷懒时会直接使用 table 右键的 edit 功能。
有时会报错:

com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: No operations allowed after connect

查看细节:

虽然针对mysql数据库 ping succeed! 但是由details 可知,该database 的 connection 已经关闭。

所以初学者/简单操作(只针对简单程序的测试)的解决方式有:

1. 重新连接 数据库 (不要Refresh),Disconnect 然后再 Connect。

2. 如果 1 不行,请尝试将你写的JDBC 数据库连接代码 中的 .close()注释掉。

-----------------------------------------------------------------------------------------------------------------------

以上问题可能跟,eclipse 与 mysql 连接太久以致于超时自动关闭所致。

针对这个问题可以有针对性的进行设置,找到了这篇文章的方法:

  ① 增加wait_timeout的时间。

  ②  减少Connection pools中connection的lifetime。

  ③ 测试Connection pools中connection的有效性。

· 具体解决方案:
  1、换一下JDBC驱动,JDBC3.1.0-alpha及以前版本会出现此问题,下载新的JDBC驱动

  2、使用hibernate配置:

使用hibernate:

<property name=”connection.autoReconnect”>true</property>  <!–这个是最主要的–>

<property name=”connection.autoReconnectForPools”>true</property>

<property name=”connection.is-connection-validation-required”>true</property>

加入以上property,可解决此问题,如果未使用hibernate等持久化管理框架,可在mysql的url中加入autoReconnect=true,这样就可以解决。

参考这篇文章:https://www.cqmaple.com/201308/no-operations-allowed-after-connection-closed.html

个人建议,mysql版本一定尽量要与 JDBC 版本相匹配。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值