解决Mysql8小时无访问断开连接的方法
配置数据源目前测试通过的是c3p0;
我使用的是GUICE+JPA
以下是配置好的persistence.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="Default" >
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>com.telematics.weixin.domain.SendRecord</class>
<properties>
<!-- MySQL Configuration -->
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/weixin?useUnicode=true&characterEncoding=utf8&autoReconnect=true"/>
<property name="hibernate.connection.username" value="root"/>
<property name="hibernate.connection.password" value="root"/>
<property name="hibernate.id.new_generator_mappings" value="true"/>
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.show_sql" value="true"/>
<!-- configuration pool via c3p0-->
<property name="hibernate.connection.provider_class" value="org.hibernate.connection.C3P0ConnectionProvider"/>
<property name="hibernate.c3p0.min_size" value="5" />
<property name="hibernate.c3p0.max_size" value="30" />
<property name="hibernate.c3p0.time_out" value="1800" />
<property name="hibernate.c3p0.max_statement" value="50" />
<property name="hibernate.c3p0.acquire_increment" value="1" />
<property name="hibernate.c3p0.idle_test_period" value="120" />
<property name="hibernate.c3p0.validate" value="true" />
<!--如果设为true那么在取得连接的同时将校验连接的有效性。Default: false -->
<property name="hibernate.c3p0.testConnectionOnCheckin" value="true"/>
</properties>
</persistence-unit>
</persistence>
然后需要加上C3p0的依赖:
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-c3p0</artifactId>
<version>3.6.7.Final</version>
</dependency>
相关推荐
修改 /etc/mysql/my.cnf文件,在 [mysqld] 节中设置: # Set a connection to wait 8hours in idle status. wait_timeout =86400 相关参数,红色部分 mysql> show variables like ‘%timeout%’; +————————...
可以直接通过设置来达到重连问题,方法很简单,里面有复现自动断开连接导致不能正常插入数据的方法,是自己没有积分所以才要积分
标题 "Mybatis破MySql8小时断线问题1" 指的是在使用Mybatis框架与MySQL数据库交互时遇到的一个常见问题,即由于MySQL数据库的连接超时机制导致的8小时断线。描述中提到,当数据库连接闲置时间超过MySQL默认设定的8...
nodejs 关于mysql模块 连接超时自动断开解决方法,在这块遇到的坑,而且坑了很久才找到的,分享只为求分
解决 MySQL+Hibernate 连接空闲8小时自动断开问题 概述: 在使用 MySQL 和 Hibernate 进行数据库持久层开发时,可能会遇到连接空闲8小时自动断开的问题。本文将讨论该问题的解决方案,并对相关的知识点进行详细...
MySQL+Hibernate 连接空闲8小时自动断开问题解决方案 知识点1: Hibernate 的连接池机制 在 Hibernate 中,默认情况下 使用的是 DriverManagerConnectionProvider,这是一个简单的连接池机制。它将打开的连接缓存在...
网上找了很多解决办法,几乎没有一个能完美解决问题的,大体都是首先执行一段query后看返回结果,但这个办法也太无用和耗费资源了吧...因为断开后isOpen和isValid都会返回true,所以不能从这里入手...
在描述中提到的解决方案是通过调整MySQL的配置来解决8小时空闲后连接超时的问题。有两种方法: 1. 修改启动参数: 在启动MySQL服务时,可以添加`--interactive_timeout=288000`参数,将交互式连接的超时时间设置为...
在解决MySQL8小时断开连接的问题时,我们需要进行以下步骤: 1. 添加Proxool和MySQL驱动到项目类路径:从提供的压缩包中,可以看到`proxool-0.8.3.jar`和`mysql-connector-java-5.1.6-bin.jar`,这两个jar包分别是...
3. 在代码中使用`mysql_options()`函数设置`MYSQL_OPT_RECONNECT`选项,以便在连接断开后自动重连,因为`caching-sha2-password`可能会在认证过程中断开连接。 为了成功完成上述步骤,你需要下载和安装合适的MinGW...
2. **合理管理数据库连接**:检查代码中所有的数据库连接和断开操作,确保没有重复关闭已经关闭的连接,或者在不应该关闭连接的地方进行了关闭。 3. **单例模式**:通过实现单例模式来控制数据库连接的创建,确保...
你可以关闭MySQL对外的端口,停止Apache服务,甚至在Console上操作并断开网络连接。 2. **修改my.cnf配置**:打开`/etc/my.cnf`文件,找到`[mysqld]`部分,添加一行`skip-grant-tables`,这会临时禁用MySQL的身份...
4. **使用心跳机制**:在长时间无操作的客户端中,设置定时发送心跳请求,以防止因超时被断开连接。 5. **优化应用设计**:尽量减少长连接的使用,提倡连接即用即关,避免无谓的资源占用。 总的来说,解决MySQL ...
MySQL数据库在运行过程中可能会遇到“Too many connections”的错误提示,这意味着服务器上的MySQL实例...通过上述方法,可以有效管理和解决MySQL中的“Too many connections”问题,确保数据库服务的稳定性和性能。
教程的第二部分介绍了如何连接到MySQL服务器以及断开连接。通常,你需要提供服务器地址、用户名、密码以及要连接的数据库名称。连接成功后,你可以使用`quit`或`\q`命令断开连接。 接着,教程讲解了如何创建和使用...
最安全的做法是在服务器控制台进行操作,并断开网络连接。 2. **修改MySQL登录设置** 使用文本编辑器(如vi)打开MySQL配置文件`/etc/my.cnf`,并在`[mysqld]`段落中加入`skip-grant-tables`选项。例如: ```...
同时,设置`testBetweenEvictionRunsMillis`(连接检查间隔时间)小于MySQL的`wait_timeout`值,这样连接池就能在MySQL断开连接之前发现并处理无效连接。 **总结** 理解“8小时问题”并正确配置连接池参数是优化...