MySQL查看最大连接数和修改最大连接数

1、查看最大连接数

show variables like '%max_connections%';
set GLOBAL max_connections = 200;

mysql数据库连接数过多导致系统出错,系统不能连接数据库,关键要看两个数据:

1、数据库系统允许的最大可连接数max_connections。这个参数是可以设置的。如果不设置,默认是100。

2、数据库当前的连接线程数threads_connected。这是动态变化的。

查看max_connections、max_connections的办法下面我们再说。

如果 threads_connected == max_connections 时,数据库系统就不能提供更多的连接数了,这时,如果程序还想新建连接线程,数据库系统就会拒绝,如果程序没做太多的错误处理。

因为创建和销毁数据库的连接,都会消耗系统的资源。而且为了避免在同一时间同时打开过多的连接线程,现在编程一般都使用所谓数据库连接池技术。

但数据库连接池技术,并不能避免程序错误导致连接资源消耗殆尽。

这种情况通常发生在程序未能及时释放数据库连接资源或其他原因造成数据库连接资源不能释放,发生类似错误的简便的检查办法是,在刷新页面时,不断监视threads_connected的变化。如果max_connections足够大,而 threads_connected值不断增加以至达到max_connections,那么,就应该检查程序了。当然,如果采用数据库连接池技术,threads_connected增长到数据库连接池的最大连接线程数时,就不再增长了。

查看 max_connections

show variables like "max_connections";
+-----------------+-------+| Variable_name  | Value |+-----------------+-------+| max_connections | 100  |+-----------------+-------+
show status like 'Thread_%';
+-------------------+-------+| Variable_name   | Value |+-------------------+-------+| Threads_cached  | 0   || Threads_connected | 1   || Threads_created  | 1   || Threads_running  | 1   |+-------------------+-------+

设置办法是在my.cnf文件中找到max_connections一项修改即可,若没有该项,请在[mysqld]下添加一行:

[mysqld] max_connections=1000

注意:

  • 1、这里写的1000。请按实际要求修改;
  • 2、添加了最大允许连接数,对系统消耗增加不大。
  • 3、如果你的mysql用的是my.ini作配置文件,设置类似,但设置的格式要稍作变通。

其他需注意的:

在编程时,由于用MySQL语句调用数据库时,在每次之执行语句前,会做一个临时的变量用来打开数据库,所以你在使用MySQL语句的时候,记得在每次调用完MySQL之后就关闭MySQL临时变量。

另外对于访问量大的,可以考虑直接写到文本中,根据预测的访问量,先定义假若是100个文件文件名,需要的时候,再对所有文本文件中的数据进行分析,再导入数据库。

总结

更多相关文章

  1. android进度条对话框
  2. Android(安卓)Studio3.3.2 +OpenCV3.4.3图像处理
  3. ProgressBar进度条
  4. android intent 最大传送内容 1m
  5. android intent 最大传送内容 1m
  6. Android应用程序的默认最大内存值
  7. Android(安卓)获取内存信息
  8. android ListView的分段显示、分页显示(附源码)
  9. android intent 最大传送内容 1m

随机推荐

  1. 从零开始的linux 第十三章
  2. Linux FFmpeg 编译so动态库
  3. 如何使用virtualenv安装wxPython
  4. Bash命令在启动时没有找到rvm, Mint
  5. Linux设备驱动剖析之Input(三)
  6. Linux和Windows下查看、设置环境变量的比
  7. 这个冬天,他们实现了梦想中的华丽转身…
  8. 在Linux中的脚本中安装应用程序
  9. linux shell 里面,真值为0,假值为非0
  10. linux 多线程基础