[TOC]
MySQL: ERROR 1040: Too many connections
背景
连接数据库异常 MySQL: ERROR 1040: Too many connections
原因
-
并发过大
-
数据库连接数超过最大连接数
查看mysql的最大连接数:
mysql mysql> show variables like '%max_connections%';
查看mysql曾经响应的最大连接数:
mysql mysql> show global status like 'Max_used_connections';
查看当前正在执行的mysql连接
mysql mysql> show processlist;
- mysql服务器磁盘满也会影响
重启mysql
/usr/local/mysql/bin/mysqld: Disk is full writing './mysql-bin.~rec~' (Errcode: 28). Waiting for someone to free space... (Expect up to 60 secs delay for server to continue after freeing disk space)
^G/usr/local/mysql/bin/mysqld: Retry in 60 secs. Message reprinted in 600 secs
磁盘满导致mysql无法写入日志文件和相关信息
解决
设置这个最大连接数值:
mysql mysql> set GLOBAL max_connections=256;
连接数超过了 MySQL 设置的值,与 max_connections 和 wait_timeout 都有关系。wait_timeout 的值越大,连接的空闲等待就越长,这样就会造成当前连接数越大。