全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

生产环境下,mysql数据库发现连接数满了,应该怎么弄?

发布时间:2023-10-13 03:39:21
发布人:xqq

一、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),其中包括应用程序、基础设施和工具,通过获取数据、分析信息以改进并优化决策和绩效,形成一套优异的商业实践。

#it技术干货

相关文章

分布式存储里的文件存储和数据库存储有什么区别?

分布式存储里的文件存储和数据库存储有什么区别?

2023-10-13
分布式关系型数据库和Newsql主要区别在哪里?

分布式关系型数据库和Newsql主要区别在哪里?

2023-10-13
如何理解SQL的可重复读和幻读之间的区别?

如何理解SQL的可重复读和幻读之间的区别?

2023-10-13
什么是数据库连接,连接和会话之间有什么关系?

什么是数据库连接,连接和会话之间有什么关系?

2023-10-13

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取