之所以会出现大量 sleep
占满连接,除了业务量的原因外,也有可以从超时时间着手调整,可根据实际情况适当缩短超时时间,让 MySQL 可在短时间自动清理超时连接,以达到保证连接通常的目的。
mysqld
连接超时参数有以下两个:
默认情况下,两者都是 28800 秒(8 小时),我们可以在 MySQL 配置文件中修改这两个参数。
如果你使用的是mysql_pconnect
这种持久连接的话,可以将超时时间降到更合适的值,比如 600 (10 分钟)甚至 60(1 分钟)。这个超时时间并没有一个明确的时间,主要还是要看你的应用场景中的实际需求。
1.在配置文件中修改超时时间(需重启 MySQL 生效):
首先打开 mysqld.cnf
配置文件。
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
然后在配置文件中找到这两行,并修改对应的参数:
[mysqld]
interactive_timeout=60
wait_timeout=60
扩展阅读:《MySQL 配置文件详解》
2.临时变更连接超时时间(无需重启):
SET GLOBAL interactive_timeout = 60;
SET GLOBAL wait_timeout = 60;
注意:
-
这是临时变更配置的方法,在重启 MySQL 后会恢复配置文件中的设置值。
-
对于已经打开的连接,是不会被关闭的。只有新建立的连接才会在 60 秒后关闭。
扩展阅读:《如何远程连接 MySQL 数据库,阿里云腾讯云允许远程连接教程》
五. 查看及修改最大连接数
在 MySQL 中,默认连接数为 151,我们可以通过修改 MySQL 配置文件永久调整连接数参数,也可以通过 SQL 命令临时调整。
1.查看当前 MySQL 连接数
mysql> show variables like ‘%max_connections%’;