首页 > 编程知识 正文

mysql连接超时时间,mysql链接超时默认时间

时间:2023-05-04 11:53:01 阅读:270363 作者:1503

MySQL数据库一般默认的连接超时time为28800s(即8小时),超过8h,数据库会断开这个连接。后台程序出现类似“org.hibernate.exception.JDBCConnectionException: could not extract ResultSet”错误,或者如下图所示异常。

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

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

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

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

SHOW GLOBAL VARIABLES LIKE '%timeout%';

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

SET GLOBAL wait_timeout=259200;SET GLOBAL interactive_timeout=259200;

方案2.修改JDBC连接url(不推荐)

在mysql4.x版本,可添加 autoReconnect=true这个参数,即能解决mysql超时重连问题。但在mysql5以上版本,autoReconnect=true这个设置是无效的;

jdbc:mysql://hostaddress:3306/testDB?autoReconnect=true

方案3.修改mysql的配置文件(慎用)

此方法要谨慎使用,如果这个值设置的太大,将导致空闲连接过多,白白消耗内存;如果设置的太小,就失去了mysql超时自动重连的作用。到底需要设置多大,难以界定。

Windows下,配置文件路径为MySQL安装的根目录中,my.ini

打开my.ini文件,添加如下配置:

interactive_timeout=2592000wait_timeout=2592000 Linux系统下,配置文件为路径/etc/my.cnf(或/etc/mysql/my.cnf)

在属性组 [mysqld] 下面添加参数(配置超时时间为30天)如下:

interactive_timeout=2592000wait_timeout=2592000

其实以上三种方案都只是临时的,并没有有效地解决mysql超时重连的问题。要彻底解决这个问题,推荐大家阅读本系列后续两篇文章:
1、Mysql连接超时解决方案2: 配置Proxool连接池;

2、Mysql超时重连解决方案3: 配置c3p0连接池;

快三大小单双计划qq群sql的配置文件(慎用)

此方法要谨慎使用,如果这个值设置的太大,将导致空闲连接过多,白白消耗内存;如果设置的太小,就失去了mysql超时自动重连的作用。到底需要设置多大,难以界定。

Windows下,配置文件路径为MySQL安装的根目录中,my.ini

打开my.ini文件,添加如下配置:

interactive_timeout=2592000wait_timeout=2592000 Linux系统下,配置文件为路径/etc/my.cnf(或/etc/mysql/my.cnf)

在属性组 [mysqld] 下面添加参数(配置超时时间为30天)如下:

interactive_timeout=2592000wait_timeout=2592000

其实以上三种方案都只是临时的,并没有有效地解决mysql超时重连的问题。要彻底解决这个问题,推荐大家阅读本系列后续两篇文章:
1、Mysql连接超时解决方案2: 配置Proxool连接池;

2、Mysql超时重连解决方案3: 配置c3p0连接池;

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。