当碰到“ERROR 1040(HY000): Too many connections”报错信息时,就是说数据库的连接池已经满了,无法再建立更多的连接。
- 可以先检查一下MySQL的配置文件,my.cnf,里面有一个参数是max_connections,就是MySQL的最大连接数;
- 然后通过
show variables like 'max_connections命令查看当前MySQL已建立的连接; 如果已连接数量小于设置的最大连接数量,就查看MySQL的启动日志,如果出现以下类似日志,则表示MySQL无法设置最大连接数为800,只能强制设置为214,因为底层Linux操作系统把进程可以打开的文件句柄数限制为了1024,导致MySQL最大连接数只能为214。
Could not increase number of max_open_files to more than mysqld (request: 65535)Changed limits: max_connections: 214 (requested 2000)Changed limits: table_open_cache: 400 (requested 4096)
执行
ulimit -HSn 65535,修改Linux限制的句柄数,然后重启MySQL。
