mysql报错:(1040, ‘ny connections‘)
在项目、可视化数据库管理工具(比如:Navicat)连接Mysql数据库时出现:too many connections 的错误,偶现情况。
原因是Mysql设置的最大连接数太小,连接池已满,实际连接数超过了mysql 允许的最大连接数,访问量过高,MySQL服务器抗不住。
解决:
1、(推荐)修改max_connections,如果这个值已经很大,2、这个时候就要考虑增加从服务器分散读压力;
Windows 找到mysql.ini(Linux 修改/etc/my.cnf文件,在[mysqld]中新增max_connections=N)。修改允许最大连接数max_connections=N,默认是100 一般设置到500~1000比较合适(这建立在机器能支撑的情况下,因为如果连接数越多,介于MySQL会为每个连接提供连接缓冲区,就会开销越多的内存,所以要适当调整该值,不能盲目提高设值。),最后重启mysql,一定要重启。
net stop mysql net start mysql
2、SET GLOBAL max_connections = 800; 非持久,下次重启没啦
拓展:
查看mysql的最大连接数
show variables like '%max_connections%';
查看mysql每台台主机的链接数
select * from information_schema.processlist; select SUBSTRING_INDEX(host,':',1) as ip , count(*) from information_schema.processlist group by ip;
id #ID标识,要kill一个语句的时候很有用 use #当前连接用户 host #显示这个连接从哪个ip的哪个端口上发出 db #数据库名 command #连接状态,一般是休眠(sleep),查询(query),连接(connect) time #连接持续时间,单位是秒 state #显示当前sql语句的状态 info #显示这个sql语句