出现这种错误明显就mysql_connect之后忘记 mysql_close;当大量的connect之后,就会出现Too many connections的错误,mysql默认的连接为100个,而什么情况下会出现这种错误呢?正常mysql_connect之后调用 mysql_close()关闭连接。
一、mysql数据库发现连接数满了,应该怎么弄
原因
出现这种错误明显就mysql_connect之后忘记 mysql_close;当大量的connect之后,就会出现Too many connections的错误,mysql默认的连接为100个,而什么情况下会出现这种错误呢?正常mysql_connect之后调用 mysql_close()关闭连接。
但在连接错误时,会者mysql_real_query()出现错误退出时,可能忘记mysql_close();
所以在程序return 之前一定要判断是否close(),最稳妥的方法就是在写任何函数时都只有一个出口!
解决方法
想尽一切办法不重启
这种情况一般是进不去数据库了,修改配置文件得重启,对于线上的数据库风险太大了,进入数据库用sql修改,现在是进不去了
方法1:
使用gdb工具 不用进入数据库,不用重启数据库 方法如下:
[root@xxx bin]# gdb -p $(cat /data/mydata/xxx.pid) -ex “set max_connections=500” -batch
查看mysql pid位置的方法
在配置文件 my.cnf里查找
用 ps -ef | grep mysql 查找
mysql> show variables like ‘%pid%’;
+—————+———————-+
| Variable_name | Value |
+—————+———————-+
| pid_file | /data/mydata/xxx.pid |
+—————+———————-+
修改完毕后 ,尝试重新进入数据库,并查看链接数
这种方法设置后,只是暂时的,数据库重启后,会变为原来的数值,要想永久,设置完后修改配置文件my.cnf
方法2
前提是还可以进入数据库
进入数据库
设置新的最大连接数为200:mysql> set GLOBAL max_connections=200
显示当前运行的Query:mysql> show processlist
显示当前状态:mysql> show status
退出客户端:mysql> exit
这种方法设置后,只是暂时的,数据库重启后,会变为原来的数值,要想永久,设置完后修改配置文件my.cnf
方法3:
需要重启数据库
修改 my.conf
max_connection = 1000;
延伸阅读:
二、BI是什么
BI即商业智能,泛指用于业务分析的技术和工具,通过获取、处理原始数据,将其转化为有价值的信息指导商业行动。Gartner把BI定义为一个概括性的术语(umbrella term),其中包括应用程序、基础设施和工具,通过获取数据、分析信息以改进并优化决策和绩效,形成一套优异的商业实践。