一、引入
最近一个python的定时任务系统的项目,在做定时数据统计的时候经常报错too many connections,字面意思很简单,就是数据库连接池不够用了。那么比较直接的方法就是手动设置数据库的最大连接数max_connections
二、如何配置
1.查询Mysql当前的最大连接数
mysql> show variables like "max_connections"; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | max_connections | 150 | +-----------------+-------+ row in set
2.在文件etc/my.cnf中设置Mysql 最大连接数
[mysqld] max_connections =2000
3.重启Mysql 命令
$ systemctl restart mysqld.service
4.查询Mysql当前的最大连接数,发现最大连接数是214
mysql> show variables like "max_connections"; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | max_connections | 214 | +-----------------+-------+ row in set
5.更改 MySQL 在 Linux 的最大文件描述符限制,编辑 /usr/lib/systemd/system/mysqld.service 文件,在文件最后添加:
ubuntu16.04 下面位于:/lib/systemd/system/mysql.servive,可以通过find 命令查找
LimitNOFILE=65535 LimitNPROC=65535
保存后,执行下面命令,使配置生效
$ systemctl daemon-reload $ systemctl restart mysqld.service
实际连接数到 2000 了,解决
1 mysql> show variables like "max_connections"; 2 +-----------------+-------+ 3 | Variable_name | Value | 4 +-----------------+-------+ 5 | max_connections | 2000 | 6 +-----------------+-------+ 7 row in set
三、总结
嗯,暂时没问题了、参考博客:https://www.cnblogs.com/kingchou/p/9321803.html