使用hibernate造成的MySql 8小时问题解决方案
本文借鉴了网上的很多博客,在此不再声明
总结
1.增加 MySQL 的 wait_timeout 属性的值(不推荐)
mysql5之前的版本,可以在jdbc连接的url中加入:autoReconnect = true
设置mysql5中wait_timeout
在linux中最大为365,wait_timeout=31536000
在window中最大为24天,以window为例:
这个方法并不推荐,原因:
MySQL服务器所支撑的最大连接数是有限的,因为每一个连接、第一个表打开的操作都要消耗服务器内存,理想状态是当一个MySQL客户端连接完成工作就自动断开释放内存,如果你的你的网站有大量的MySQL链接请求,这些连接完成SQL执行任务后空闲着啥事也不干,白白占用内存资源,如果 这些连接堆积起来,将导致MySQL超过最大连接数,从而无法新建MySQL连接,有可能导致“Too many connections”的错误。
参考自:http://blog.csdn.net/cenfei78325747/article/details/7854611
2.使用连接池(推荐)
(1)无论是使用C3PO还是proxool连接池,一定要去hibernate解压包里找到相应文件夹的jar包,导入:
有些人一直解决不了连接池问题,可能原因就在这里
以proxool为例:
(2)配置hibernate.cfg.xml
<session-factory>
<!-- 选择使用连接池 -->
<property name="connection.provider_class">
org.hibernate.connection.ProxoolConnectionProvider
</property>
<!-- 指明要使用的proxool.xml中定义的proxool别名 -->
<property name="proxool.pool_alias">mysql</property>
<!-- 指明Proxool配置文件所在位置,这里与Hibernate的配置文件在同一目录下 -->
<property name="proxool.xml">proxool.xml</property>
..............
</session-factory>
(3)在同一目录下配置proxool.xml
<?xml version="1.0" encoding="UTF-8"?>
<proxool>
<!-- proxool别名 -->
<alias>mysql</alias>
<!-- 数据库连接Url -->
<driver-url>
<![CDATA[jdbc:mysql://localhost:3306/work?useUnicode=true&characterEncoding=UTF-8]]>
</driver-url>
<!-- JDBC驱动名称 -->
<driver-class>com.mysql.jdbc.Driver</driver-class>
<!-- 数据库连接帐号 -->
<driver-properties>
<!--这里改成你自己的-->
<property name="user" value="root" />
<property name="password" value="password" />
</driver-properties>
<!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁 -->
<house-keeping-sleep-time>60000</house-keeping-sleep-time>
<!-- 指因未有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受 -->
<maximum-new-connections>100</maximum-new-connections>
<!-- 最少保持的空闲连接数 -->
<prototype-count>3</prototype-count>
<!-- 允许最大连接数,超过了这个连接,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-
connections决定 -->
<maximum-connection-count>20</maximum-connection-count>
<!-- 最小连接数 -->
<minimum-connection-count>3</minimum-connection-count>
<!-- 在分配连接前后是否进行有效性测试,这个是解决本问题的关键 -->
<test-before-use>true</test-before-use>
<test-after-use>true</test-after-use>
<!-- 用于测试的SQL语句 -->
<house-keeping-test-sql>SELECT CURRENT_USER</house-keeping-test-sql>
</proxool>
</something-else-entirely>
参考:http://blog.csdn.net/u012377333/article/details/50600173
使用hibernate造成的MySql 8小时问题解决方案的更多相关文章
- 使用c3p0与DBCP连接池,造成的MySql 8小时问题解决方案
转自:http://blog.csdn.net/wangfayinn/article/details/24623575 c3p0数据库连接池mysql8小时 目录(?)[-] 基本问题解决 项目环境 ...
- MySql 8小时解决方案:proxool连接池
最近做的项目用的mysql数据库,前天挂在服务器上,昨天早晨上班一来,同事就说API数据接口访问不了了,我马上mstsc登陆服务器看,报错了.马上重启tomcat,结果还能正常运行,当时没管,今天过来 ...
- 使用c3p0与DBCP连接池,造成的MySql 8小时问题解决方式
本文提供了对c3p0与DBCP连接池连接MySql数据库时. 8小时内无请求自己主动断开连接的解决方式.首先介绍一下我在项目(c3p0连接池)中遇到的问题,后面还提供了使用DBCP连接池的解决方式. ...
- 用hibernate自动创建mysql表,添加失败org.hibernate.exception.SQLGrammarException
今天遇到了一个很坑人的问题,从昨晚一直搞到今天早上,终于发现了,先整理下: [背景]:利用hibernate自动给mysql创建一个表,然后为表里面添加一行记录,非常的简单(当然其中还涉及到sprin ...
- MySQL 取得小时分钟部分
MySQL 取得小时分钟部分 SELECT `CpParkID` , DATE_FORMAT( `UPDATE_TIME` , '%H:%i' )FROM `cp_park`WHERE HOUR( ` ...
- mysql服务突然丢失解决方案
mysql服务突然丢失解决方案 今天系统从win7更新到win10之后,mysql突然没了,使用navicat连接提示如下: 看到这个,以为自己的mysql服务没启动,于是打开服务找mysql服务,发 ...
- Hibernate懒加载的三种解决方案
Hibernate懒加载的两种解决方案: 1.Hibernate.initialize(代理对象) 2.在*.hbm.xml映射文件中添加lazy="false"属性 3.使用op ...
- 图文详解linux/windows mysql忘记root密码解决方案
经常有用户过来咨询说自己的mysql服务器忘记密码了怎么办,为了更好的解决大家的困扰,本文特归档整理了windows和linux系统下,mysql忘记密码的解决方案.本文内容是我亲测实用,当然过程中踩 ...
- 远程客户端连接MysqL数据库太慢解决方案
远程客户端连接MysqL数据库太慢解决方案局域网客户端访问mysql 连接慢问题解决. cd /etc/mysql vi my.conf [mysqld] skip-name-resolve 此选项禁 ...
随机推荐
- Testlink1.9.17使用方法(第八章 测试执行/报告BUG)
第八章 测试执行/报告BUG QQ群交流:585499566 把他们放到一起,是因为报告bug是在执行的过程中同步进行的——即执行用例的过程中一旦发现bug我们需要立即把其报告到我们的bug管理系统r ...
- jdk各版本特性
JDK Version 1.0 开发代号为Oak(橡树),于1996-01-23发行. JDK Version 1.1 于1997-02-19发行. 引入的新特性包括: 引入JDBC(Java Dat ...
- SQL 事务隔离级别
转载来源:https://www.cnblogs.com/chenmh/p/3998614.html 标签: SQL SEERVER/MSSQL SERVER/SQL/事务隔离级别选项/设置数据库事务 ...
- memory 监控 mysql vs percona vs maria
oracle mysql 5.7 在performance_schema 通过以下表展现内存信息.这些表实际engine为performance_schema.这些表数据实际是以数组的形式存储在内存中 ...
- March 01st, 2018 Week 9th Thursday
Let bygones be bygones. 过去的就让它过去吧. What happened has happened, it cannot be undone, so just leave it ...
- 枚举应用demo
package com.xx; public enum PositionEM{ ONE(1,"领导"), TWO(2,"员工"); private Long v ...
- python 初始socket
一.网络基础 1.c\s架构:客户端英文名称:Client(使用服务端的服务),服务端英文名称:Server 软件c\s架构:QQ.微信.优酷.暴风影音.浏览器(IE.火狐,360浏览器等): 软件b ...
- 设计模式のPrototypePattern(原型模式)----创建模式
一.产生的背景 这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆.当直接创建对象的代价比较大时,则采用这种模式.例如,一个对象需要在一个高代价的数据库操作之后被创建.我们可以缓存该对象,在下 ...
- WPF自定义控件(二)の重写原生控件样式模板
话外篇: 要写一个圆形控件,用Clip,重写模板,去除样式引用圆形图片可以有这三种方式. 开发过程中,我们有时候用WPF原生的控件就能实现自己的需求,但是样式.风格并不能满足我们的需求,那么我们该怎么 ...
- socket学习笔记(一)