MySQL提示too many connections解决办法

1.首先登录mysql终端,查看一下mysql的日志文件存放位置。 show global variables like log。
MySQL提示too many connections解决办法_第1张图片
2.根据提示,找到/var/下的mysql日志看看有没有什么其他错误。
MySQL提示too many connections解决办法_第2张图片
3.若没有其他错误mysql终端,通过输入show variables like max_connections,查看最大连接数。
在这里插入图片描述4.修改最大连接数:set GLOBAL max_connections=1000,配置好之后再次查看最大连接数的量。
MySQL提示too many connections解决办法_第3张图片
5.超过连接数的原因,是mysql的连接数保持时间太长。可以修改一下保活机制show global variables like ‘wait_timeout’ ,就是最大睡眠时间。
MySQL提示too many connections解决办法_第4张图片
6.修改一下 set global wait_timeout=300; 自动杀死线程。
set global interactive_timeout=500;
修改这个数值,表示mysql在关闭一个连接之前要等待的秒数,至此可以让mysql自动关闭那些没用的连接,但要注意的是,正在使用的连接到了时间也会被关闭,因此这个时间值要合适
MySQL提示too many connections解决办法_第5张图片
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秒后被自动关闭

你可能感兴趣的:(linux,mysql)