189 8069 5689

mysql怎么自动断开 mysql数据库自动断开连接

mysql数据库不知道为什么就断开连接了

两种常见的断开方式:

目前创新互联已为成百上千家的企业提供了网站建设、域名、虚拟空间、网站运营、企业网站设计、德清网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

1 根据数据库连接字符串设置链接生命周期 会自行断开

2 拿,net环境举例 MySQL.Data.MySqlClient类库下的 MySqlConnection类 下面有个方法 叫 .Close() 即可断开连接;

访问MySqlConnection类下的 Statu (只读的)字段 可以获得当前连接状态

提示 断开后的连接 可以随时 根据需要打开

解决MySQL8小时自动断开连接的问题(DBCP配置)

最近做的一个JavaWeb项目,持久层用SpringJDBC+DBCP+MySQL。一开始只配置了DBCP的一些常用参数,没有注意对空闲连接的检查和回收。项目部署在tomcat后,刚开始使用没用问题。第二天再试图登录时,发生了报错:

可以看到,报错信息提示上次交互已经是82664635ms前,超过了MySQL server配置的'wait_timeout'(默认是8小时),所以该连接已经被MySQL回收了,但DBCP不知道连接已被回收,依然试图执行操作,引发了异常。报错信息提示可以修改wait_timeout或者添加autoReconnect=true。

(备注:mysql5以上的,设置autoReconnect=true 是无效的 只有4.x版本,起作用)

这两个参数的默认值是8小时(60 60 8=28800)。 注意:wait_timeout的最大值只允许2147483 (24天左右)

也可以用MySQL命令进行修改

这种办法治标不治本。

2.减少连接池内连接的生存周期,使之小于上一项中所设置的wait_timeout 的值。

也就是说,让已经断开的空闲连接没有机会被使用,提前被回收。

以C3P0配置为例:

DBCP中配置minEvictableIdleTimeMillis即可。

3.配置连接池

定期使用连接池内的连接,使得它们不会因为闲置超时而被 MySQL 断开。并且每次使用连接前检查连接是否可用,定期回收空闲的连接。

修改 c3p0 的配置文件,在 Spring 的配置文件中设置:

DBCP连接池的配置:

DBCP官方配置文档:

C3P0的配置标准:

关于MySQL的wait_timeout连接超时问题报错解决方案

mysql为什么交互输入每次显示终端连接已断开

mysql交互输入每次显示终端连接已断开是MySQL的默认设置。当一个连接的空闲时间超过8小时后,MySQL就会断开该连接。超过这个时间(默认是8小时)对数据库没有任何操作,那么MySQL会自动关闭数据库连接以节省资源。

mysql怎么设置自动断

用Fsocket获取数据时能够控制超时的。

如果用

File_get_contents($url);

可以临时设定环境变量:

设定默认socket超时时间

ini_set("default_socket_timeout", 3);养成好习惯,使用fsocket获取数据。

如果使用Curl,也可以在Curl中控制超时时间:

curl_setopt($ch, CURLOPT_TIMEOUT, 15);

PHP中mysql函数是不提供类似mysql超时选项的,但是php.ini的mysql.connect_timeout可设置

; Maximum time (in seconds) for connect timeout. -1 means nolimit

mysql.connect_timeout = 60

也可以在php脚本中调用设置ini_set();


文章标题:mysql怎么自动断开 mysql数据库自动断开连接
浏览地址:http://jkwzsj.com/article/hjpeis.html

其他资讯