MySQL中连接超时自动断开的解决方案

时间:2024-03-12 13:45:35

前言:

MySQL数据库一般默认的连接超时时间为3600s(1小时),但是在进行大规模的线程事务操作时,一个连接会一直等待执行,这时候如果数据库的超时时间设置的过短,就可能会出现Mysql数据连接自动被释放,影响后面对数据库的操作。

当然MySQL连接设置的大小,要根据需求场景进行设置,wait_timeout过大也有弊端,其体现就是MySQL里大量的SLEEP进程无法及时释放,拖累系统性能,不过也不能把这个指设置的过小,否则你可 能会遭遇到“mysql has gone away”之类的问题。

所以需要根据自己项目业务场景,进行适当的设置超时时间。

首先介绍下如何查看mysql的超时时间方法

在mysql命令提示符下执行以下命令即可:

SHOW GLOBAL VARIABLES LIKE \'%timeout%\'

其次连接超时wait_timeout设置方法如下:

方案1.在mysql命令提示符执行以下命令即可(临时方法,重启MySQL服务器会失效,恢复默认值)

SET GLOBAL wait_timeout=15000

 

方案2.修改mysql的配置文件(推荐方法)

  • Windows下,配置文件路径为MySQL安装的根目录中。my.ini
  • Linux系统下,配置文件为路径/etc/my.cnf
[mysqld]

wait_timeout=10000
interactive_timeout=10000

保存退出,重启MySQL服务即可