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秒后被自动关闭
当MySQL提示too many connections时,可以通过检查日志、查看最大连接数、修改max_connections、调整wait_timeout和interactive_timeout参数来解决。临时修改需重启生效,并确保设置值适合应用需求。

3827

被折叠的 条评论
为什么被折叠?



