生产环境下,mysql数据库发现连接数满了,应该怎么弄?
一、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),其中包括应用程序、基础设施和工具,通过获取数据、分析信息以改进并优化决策和绩效,形成一套优异的商业实践。

相关推荐HOT
更多>>
服务器503错误怎么解决?
一、服务器503错误解决方法1. 重新启动服务器错误503可能是托管应用程序的服务器链中的瓶颈的结果。 如果您是管理员或者可以联系该人员,则可以...详情>>
2023-10-11 22:12:48
什么是持续部署?
一、什么是持续部署持续部署(CD) 是一个软件发布过程,使用自动化测试来验证对代码库的所有更改是否准确并准备好自动部署到生产环境。近年来,...详情>>
2023-10-11 21:25:16
什么是CAP 定理?
一、什么是CAP 定理CAP 定理将类似的逻辑应用于分布式系统,即分布式系统只能提供三个期望特征中的两个:?一致性、可用性和分区容错(也就是 C...详情>>
2023-10-11 20:04:52
html的lang属性有什么用?
一、页面语言标识lang属性的主要作用是标识页面所使用的语言。通过在HTML文档的根元素(html标签)上设置lang属性,我们可以告诉浏览器和搜索引擎...详情>>
2023-10-11 19:33:22