1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 如何减少mysql的连接时间_mysql连接的空闲时间超过8小时后 MySQL自动断开该连接解决方案...

如何减少mysql的连接时间_mysql连接的空闲时间超过8小时后 MySQL自动断开该连接解决方案...

时间:2020-07-26 16:12:55

相关推荐

如何减少mysql的连接时间_mysql连接的空闲时间超过8小时后 MySQL自动断开该连接解决方案...

mysql连接的空闲时间超过8小时后 MySQL自动断开该连接解决方案

更新时间:11月29日 20:27:52 作者:

MySQL 的默认设置下,当一个连接的空闲时间超过8小时后,MySQL 就会断开该连接,而 c3p0 连接池则以为该被断开的连接依然有效。在这种情况下,如果客户端代码向 c3p0 连接池请求连接的话,连接池就会把已经失效的连接返回给客户端,客户端在使用该失效连接的时候即抛出异常

解决这个问题的办法有三种:

1. 增加 MySQL 的 wait_timeout 属性的值。修改 /etc/mysql/f文件,在 [mysqld] 节中设置:

# Set a connection to wait 8hours in idle status.

wait_timeout =86400

相关参数,红色部分

mysql> show variables like '%timeout%';

+--------------------------+-------+

| Variable_name | Value |

+--------------------------+-------+

| connect_timeout | 5 |

| delayed_insert_timeout | 300 |

| innodb_lock_wait_timeout | 50 |

| interactive_timeout | 28800 |

| net_read_timeout | 30 |

| net_write_timeout | 60 |

| slave_net_timeout | 3600 |

| wait_timeout | 28800 |

+--------------------------+-------+

同一时间,这两个参数只有一个起作用。到底是哪个参数起作用,和用户连接时指定的连接参数相关,缺省情况下是使用wait_timeout。我建议是将这两个参数都修改,以免引起不必要的麻烦。

这两个参数的默认值是8小时(60*60*8=28800)。我测试过将这两个参数改为0,结果出人意料,系统自动将这个值设置为。换句话说,不能将该值设置为永久。

将这2个参数设置为24小时(60*60*24=604800)即可。

set interactive_timeout=604800;

set wait_timeout=604800;

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

修改 c3p0 的配置文件,设置:

# How long to keep unused connections around(in seconds)

# Note: MySQL times out idle connections after 8hours(28,800seconds)

# so ensure this value is below MySQL idle timeout

cpool.maxIdleTime=25200

在 Spring 的配置文件中:

class="com.mchange.boPooledDataSource">

3. 定期使用连接池内的连接,使得它们不会因为闲置超时而被 MySQL 断开。修改 c3p0 的配置文件,设置:

# Prevent MySQL raise exception after a long idle timecpool.preferredTestQuery='SELECT 1'cpool.idleConnectionTestPeriod=18000cpool.testConnectionOnCheckout=true

修改 Spring 的配置文件:

相关文章

mysqldump备份方式是采用逻辑备份,最大的缺陷就是备份和恢复的速度都慢,这时候就需要一种很好用又高效的工具,xtraback 就是其中的一款,号称免费版的innodb hotbackup。接下来通过本文给大介绍使用xtraback备份MySQL数据库的方法,感兴趣的朋友一起看看吧-10-10

这篇文章主要介绍了MySQL如何实现事务的四大特性,帮助大家更好的理解和学习MySQL数据库,感兴趣的朋友可以了解下-09-09

这篇文章主要介绍了MySQL8安装Installer版的教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下-09-09

这篇文章主要为大家分享了mysql 5.7.16winx64安装配置方法图文教程,感兴趣的朋友可以参考一下-10-10

本篇文章主要给大家详细讲解了MySQL复制优点以及Mysql复制的原理知识,对此有兴趣的朋友学习下。-02-02

这篇文章主要给大家介绍了关于linux安装mysql 8.0.x的完整步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用mysql具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧-05-05

这篇文章主要介绍了 MySql允许远程连接如何实现该功能的相关资料,需要的朋友可以参考下-02-02

在 MySQL 中,数据库和表对应于那些目录下的目录和文件。因而,操作系统的敏感性决定数据库和表命名的大小写敏感。-01-01

下面小编就为大家带来一篇Java连接mysql数据库并进行内容查询的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧-10-10

最近被一个朋友问到mySQL中in查询和exists的区别,当然只是草草的回答了下,今天偶然看到了一篇关于mysql中的exists查询的文章,读完感觉太”冷落”它了,这里总结一下,也跟自己常用的in查询做一下对比。有需要的朋友们可以参考借鉴,下面来一起学习学习吧。-11-11

最新评论

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。