`

解决数据库连接池连接mysql时,每隔8小时mysql自动断开所有连接的问题

 
阅读更多

解决数据库连接池连接MySQL时,每隔8小时mysql自动断开所有连接的问题

最近有个问题非常讨厌,我们的工程中使用自己的连接池连接mysql数据库,可mysql数据库每隔8小时就会自动断开所有链接,连接池就失效,需要重新启动tomcat才有效,呵呵,服务器可不能老是用“人工智能”来干预啊,后来翻了一下mysql的手册,发现mysql有解决办法,下面就是最简单的解决办法:

连接数据库的时候加上autoReconnect=true这个参数:

jdbc:mysql://localhost:3306/accounant?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true

但是,在mysql手册中有这样一段话: 
驱动程序是否应尝试再次建立失效的和/或死连接? 如果允许,对于在失效或死连接上发出的查询(属于当前事务),驱动程序将抛出异常,但在新事务的连接上发出下一个查询时,将尝试再连接。不推荐使用该特性,这是因为,当应用程序不能恰当处理SQLExceptions时,它会造成与会话状态和数据一致性有关的副作用,设计它的目的仅用于下述情况,即,当你无法配置应用程序来恰当处理因死连接和/或无效连接导致的SQLExceptions时。作为可选方式,可将MySQL服务器变量“wait_timeout”设置为较高的值,而不是默认的8小时。 
呵呵,不知道这种“副作用”会产生什么后果,难道会使tomcat崩溃??会产生“数据一致性”问题??

保险一点的办法还是增加“wait_timeout”这个值吧,把28800设置成更大的值,这样应该就不会有什么问题了吧。 
windows下在my.ini文中增加: 
interactive_timeout=28800000 
wait_timeout=28800000

注:目前我使用的是autoReconnect这种方式,未发现什么问题

 

转载至: 
http://blog.csdn.net/liuxiaogangqq/article/details/41757501

分享到:
评论

相关推荐

    Qt 多线程连接数据库——数据库连接池

    * 数据库连接池特点: * 获取连接时不需要了解连接的名字,连接池内部维护连接的名字 * 支持多线程,保证获取到的连接一定是没有被其他线程正在使用 * 按需创建连接,可以创建多个连接,可以控制连接的数量 * 连接...

    使用数据库连接池proxool配置mysql数据库

    总结,使用Proxool配置MySQL数据库连接池,不仅可以解决8小时连接超时问题,还可以提升应用程序的性能和稳定性。通过详细配置Proxool,我们可以灵活地调整连接池参数以适应不同应用场景的需求,并通过集成到Tomcat,...

    (源码)基于C++和MySQL API的数据库连接池系统.zip

    # 基于C++和MySQL API的数据库连接池系统 ## 项目简介 本项目是一个基于C++和MySQL API的高性能数据库连接池系统。该系统旨在解决在高并发环境下频繁进行数据库连接和断开操作所带来的性能瓶颈问题。通过引入...

    MySQL+Hibernate下连接空闲8小时自动断开问题解决方案.pdf

    要解决连接空闲8小时自动断开的问题,可以使用连接池机制来管理数据库连接。常用的连接池机制有 C3P0、Proxool、DBCP 等。在本例中,可以使用 C3P0 连接池机制来解决问题。 知识点4:C3P0 连接池机制 C3P0 是一个...

    基于 MySQL 协议,Swoole 开发的MySQL数据库连接池.zip

    将数据库连接作为对象存储在内存中,当用户需要访问数据库时,首次会建立连接,后面并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象。 使用完毕后,用户也并非将连接关闭,而是将连接放回连接池...

    Mybatis破MySql8小时断线问题1

    标题 "Mybatis破MySql8小时断线问题1" 指的是在使用Mybatis框架与MySQL数据库交互时遇到的一个常见问题,即由于MySQL数据库的连接超时机制导致的8小时断线。描述中提到,当数据库连接闲置时间超过MySQL默认设定的8...

    MySQL+Hibernate下连接空闲8小时自动断开问题解决方案.docx

    MySQL+Hibernate 连接空闲8小时自动断开问题解决方案 知识点1: Hibernate 的连接池机制 在 Hibernate 中,默认情况下 使用的是 DriverManagerConnectionProvider,这是一个简单的连接池机制。它将打开的连接缓存在...

    delphi 数据库链接池

    为了解决这个问题,数据库连接池应运而生。它在应用启动时预先创建一定数量的数据库连接,这些连接在不使用时不会被立即关闭,而是被保留在池中。当新的数据库操作请求到来时,应用程序可以从池中获取一个已经建立好...

    mysql连接池java源码

    MySQL连接池在Java应用开发中扮演着至关重要的角色,它是一种管理数据库连接的机制,能够有效地提高数据库操作的性能和效率。在这个项目中,我们看到的是一个纯手工编写的Java源码实现,不依赖任何外部数据库驱动,...

    c3p0数据库连接池

    当应用需要访问数据库时,不再直接创建新的连接,而是从连接池中获取一个已存在的连接,用完后再归还,从而减少了数据库连接的创建和销毁过程。 2. c3p0数据源:c3p0数据源...

    mysql数据连接池

    2. **连接获取与释放**:当应用需要访问数据库时,不再直接创建新的数据库连接,而是从连接池中获取一个已存在的连接。使用完毕后,应用不关闭连接,而是将其归还回连接池,供后续使用。 3. **连接管理**:连接池...

    MySQL数据库服务器下C3P0连接池的配置.pdf

    查阅相关文档后发现,造成报错的原因是:MySQL的默认设置为当一个连接的空闲时间超过8小时后,MySQL就会断开该连接,而C3P0连接池则以为被断开的连接依然有效。在这种情况下,如果客户端代码向C3P0连接池请求连接的...

    基于PHP的SMProxy(MySQL数据库连接池).zip

    【标题】"基于PHP的SMProxy(MySQL数据库连接池)"是一个使用PHP编写的数据库连接池解决方案,它旨在优化和管理MySQL数据库的多个并发连接。在Web应用开发中,尤其是高并发场景下,数据库连接的创建和关闭频繁进行,这...

    Tomcat6连接池配置详解(自动重连)

    ### Tomcat6连接池配置详解(自动重连) #### 一、引言 在现代Web应用开发中,数据库连接管理是非常重要的一环。为了提高应用性能并确保资源的有效利用,通常采用连接池技术来管理数据库连接。Apache Tomcat作为一...

    JAVA 开发数据库连接池jar包

    连接池的基本原理是预先创建一定数量的数据库连接,并存储在一个池中,当应用程序需要时,可以从池中获取连接,使用完毕后再归还,而不是每次操作数据库都创建新的连接。这种方式减少了频繁创建和关闭连接的开销,...

    c++封装MYSQL数据库连接代码

    在C++编程中,与MySQL数据库进行交互是常见的任务,特别是在开发需要持久化存储的应用程序时。本程序通过封装MYSQL数据库的库函数和头文件,实现了数据库的连接以及执行相关操作的功能。以下是对这一主题的详细说明...

    基于C++实现多线程连接池MySQL源码+项目说明+详细代码注释.zip

    基于C++实现多线程连接池MySQL源码+项目说明+详细代码注释.zip C++ 调用 MYSQL API 连接池 ## environment: * VS2022 * MySQL8.0.27 ## 高并发下频繁处理瓶颈 * 建立通信:`TCP三次握手` * 数据库服务器的`连接认证...

    java动态代理实现数据库连接池

    为了解决上述问题,本文介绍了一种基于Java动态代理的数据库连接池实现方案,旨在减少耦合度、提高用户体验的同时确保连接的有效管理和回收。 #### 技术原理 Java提供了强大的反射机制来支持动态代理。动态代理...

    java数据库连接池dbcp

    3. **性能优化**:通过复用已存在的连接,减少每次请求数据库时的建立和断开连接的时间,提升了系统性能。 4. **配置灵活**:DBCP提供了丰富的配置选项,可以根据实际需求调整连接池的大小、超时时间、验证策略等...

Global site tag (gtag.js) - Google Analytics