Ubuntu18.04 Mysql 异常问题解决(一)

Mysql 1040 Too many connections solutions

原因分析
连接mysql请求过多,超过mysql数据库的最大连接数。(造成请求过多可能有两方面的原因,一是实际请求需求确实较多,二是程序出现异常,导致连接mysql数据库的资源无法及时释放,需排查程序异常代码,尤其是数据库连接部分)

解决过程
1、使用navicat工具连接mysql数据库。若连接不上,重启mysql服务

sudo service mysql restart

2、查看数据库连接数,会有很多sleep状态的连接,从返回的host 和db可以排查连接主体是谁

SHOW PROCESSLIST;

3、查看mysql最大连接数

show variables like "max_connections"; 

4、临时修改mysql最大连接数,重启mysql则恢复默认值

set GLOBAL max_connections=1500;

5、永久修改mysql 最大链接数,修改mysql启动配置文件mysqld.cnf中设置max_connections = 1500,重启mysql服务

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

6、mysql中“wait_timeout”这个数据默认是28800s,表示mysql在自动关闭一个睡眠连接前等待的秒数,因此可以修改这个数值,使得mysql可以及时自动关闭无用连接

set global wait_timeout=500;

7、kill无用连接,通常情况下可能会造成误杀,一般不建议这么做,若非要做,参考这篇文章:https://www.jb51.net/article/65718.htm

8、一般来说,mysql最大连接数的设置依赖于应用程序,不可过大,否则会降低数据库性能

猜你喜欢

转载自blog.csdn.net/qq_43314560/article/details/112390551
今日推荐