当前位置:网站首页>【问题记录】03 连接MySQL数据库提示:1040 Too many connections

【问题记录】03 连接MySQL数据库提示:1040 Too many connections

2022-07-04 06:23:00 joinclear

1、报错信息如下:

连接MySQL数据库提示:1040 Too many connections:
在这里插入图片描述

2、原因:

由于数据库连接数量,超过了数据库的最大连接数。
PS:因为这些数据库连接数,处于sleep状态,但是还没有被清除掉。

查看原因:

1)登录数据库

登录服务器,输入命令:

mysql -uroot -p

输入数据库登录密码后,登录成功。

2)查看数据库进程状态
show status like  'Threads%';

在这里插入图片描述
treads_cached :缓冲池中的线程数。
Threads_connected:当前连接(运行和睡眠)中的线程数。
Threads_created :创建过连接的线程数。
Threads_running:当前运行(没有睡眠)中的线程数。

总共连接了:152个。

3)查看数据库最大连接数
show variables like '%max_connection%';

在这里插入图片描述
最大连接数:151个,小于当前连接总数152,所以提示:Too many connections。

4)查看清除Sleep连接数时间
show variables like 'wait_timeout';

在这里插入图片描述
清除时间间隔为:28800秒(8小时),连接后8小时清除掉。

3、解决方法:

解决方法优先按下面1、2、3的顺序:

1)排查代码问题

看看到底哪里产生的连接数过多,有可能是代码比如定时任务引起的问题。

2)增加最大连接数
set GLOBAL max_connections=1000; 

比如,改为1000个连接数:
在这里插入图片描述

3)改小清除Sleep连接数时间
set GLOBAL wait_timeout=14400; 

改成4小时清除或者更短的时间间隔。

原网站

版权声明
本文为[joinclear]所创,转载请带上原文链接,感谢
https://blog.csdn.net/joinclear/article/details/125300930