MySQL提示too many connections解决办法

当MySQL提示too many connections时,可以通过检查日志、查看最大连接数、修改max_connections、调整wait_timeout和interactive_timeout参数来解决。临时修改需重启生效,并确保设置值适合应用需求。

1.首先登录mysql终端,查看一下mysql的日志文件存放位置。 show global variables like log。
在这里插入图片描述
2.根据提示,找到/var/下的mysql日志看看有没有什么其他错误。
在这里插入图片描述
3.若没有其他错误mysql终端,通过输入show variables like max_connections,查看最大连接数。
在这里插入图片描述4.修改最大连接数:set GLOBAL max_connections=1000,配置好之后再次查看最大连接数的量。
在这里插入图片描述
5.超过连接数的原因,是mysql的连接数保持时间太长。可以修改一下保活机制show global variables like ‘wait_timeout’ ,就是最大睡眠时间。
在这里插入图片描述
6.修改一下 set global wait_timeout=300; 自动杀死线程。
set global interactive_timeout=500;
修改这个数值,表示mysql在关闭一个连接之前要等待的秒数,至此可以让mysql自动关闭那些没用的连接,但要注意的是,正在使用的连接到了时间也会被关闭,因此这个时间值要合适
在这里插入图片描述
7.刚刚的配置是临时修改,重启mysql会失效。可以通过修改mysql的配置nano /etc/my.cnf 添加 max_connections=1000
vi /etc/my.cnf 编辑my.cnf在[mysqld]中加入:max_connections=1000
service mysqld restart //重启mysql
附:
调整锁超时阈值 lock_wait_timeout 表示获取metadata lock的超时(单位为秒),允许的值范围为1到31536000(1年)。 默认值为31536000。详见
https://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_lock_wait_timeout
。默认值为一年!!!已哭瞎!将其调整为30分钟
sql set session lock_wait_timeout = 1800; set global lock_wait_timeout = 1800;

show global status like ‘uptime’;查看mysql的运行时长
show global variables like ‘%timeout’;
某个mysql长连接很久没有新的请求发起,达到了server端的timeout,被server强行关闭。wait_timeout 是28800秒,即mysql链接在无操作28800秒后被自动关闭

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

期待mizi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值