Fork me on GitHub

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语句

  

 

posted @ 2024-05-21 18:17  君乐豹  阅读(619)  评论(0编辑  收藏  举报
Live2D