1 根据数据库连接字符串设置链接生命周期 会自行断开
2 拿,net环境举例 MySQL.Data.MySqlClient类库下的 MySqlConnection类 下面有个方法 叫 .Close() 即可断开连接;
访问MySqlConnection类下的 Statu (只读的)字段 可以获得当前连接状态
提示 断开后的连接 可以随时 根据需要打开
mysql与程序连接,在一定时间内没有出现连接超过mysql的连接等待时间(wait_timeout)会出现断开连接情况,跟数据库配置有关。
mysql默认连接等待时间是为(28800s)即8h,
命令:show global variables like 'wait_timeout' 查看等待时间
在msql5中wait_timeout的最大值分别是24d/365(win/linux)
在mysql中的安装目录中的my.ini增加一行 wait_timeout=1814400
linuix在etc/my.cnf中
MySQL服务器默认的空闲时间超过8个小时,MySQL将自动断开该连接,而连接池却认为该连接还是有效的,当应用申请使用该连接时,就会报错:Communications link failure,The last packet successfully received from the server was *** millisecond ago.The last packet successfully sent to the server was *** millisecond ago。如果你使用的是hibernate,需要修改连接池的设置,因为 hibernate自带的连接池性能很差,可以使用C3P0,然后配置:
<property name="automaticTestTable">test</property>
c3p0将建一张名为Test的空表,并使用其自带的查询语句进行测试。如果定义了这个参数那么 属性preferredTestQuery将被忽略。你不能在这张Test表上进行任何 *** 作,它将只供c3p0测试使用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)