mysql 数据库连接数的更改

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

转载于:http://qn-lf.iteye.com/blog/796495

 

系统能不能连接数据库,关键要看两个数据:

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

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

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

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

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

这种情况通常发生在程序未能及时释放数据库连接资源或其他原因造成数据库连接资源不能释放,

该 错误的简便的检查办法是,在刷新页面时,不断监视threads_connected的变化。如果max_connections足够大,而threads_connected值不断增加以至达到max_connections,那么,就应该检查程序了。当然,如果采用数据库连接池技 术,threads_connected增长到数据库连接池的最大连接线程数时,就不再增长了。

查看max_connections

进入MySQL,用命令:show variables 
查看数据库最大可连接数的变量值:max_connections

查看threads_connected

进入MySQL,用命令:show status 
查看当前活动的连接线程变量值:threads_connected


设置max_connections

设置办法是在my.cnf文件中,添加下面的最后红色的一行:

--------------------------------------------------------------------------------

[mysqld] 
port=3306 
#socket=MySQL 
skip-locking 
set-variable = key_buffer=16K 
set-variable = max_allowed_packet=1M 
set-variable = thread_stack=194K 
set-variable = table_cache=4 
set-variable = sort_buffer=64K 
set-variable = net_buffer_length=2K 
set-variable = max_connections=32000


--------------------------------------------------------------------------------

修改完毕后,重启MySQL即可。当然,为了确保设置正确,应该查看一下max_connections。

注意: 
1、虽然这里写的32000。但实际MySQL服务器允许的最大连接数16384; 
2、除max_connections外,上述其他配置应该根据你们系统自身需要进行配置,不必拘泥; 
3、添加了最大允许连接数,对系统消耗增加不大。 
4、如果你的mysql用的是my.ini作配置文件,设置类似,但设置的格式要稍作变通。

 

注: ERROR 1436 (HY000): Thread stack overrun: 4508 bytes used of a 131072 byte stack, and 128000 bytes needed. Use 'mysqld -O thread_stack=#' to specify a bigger stack.

 

可通过上面方法改变set-variable = thread_stack=194K值

 

 

或者以管理员身份运行

 

set GLOBAL max_connections=200

 

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7月前
|
关系型数据库 MySQL 数据库连接
win10关于mysql5.7数据库连接不上的解决方法
win10关于mysql5.7数据库连接不上的解决方法
96 0
|
8月前
|
关系型数据库 MySQL 数据库连接
Python基础 之 Python3 MySQL 数据库连接 - PyMySQL 驱动 2
Python3 MySQL 数据库连接 - PyMySQL 驱动
75 0
|
3月前
|
数据可视化 关系型数据库 MySQL
使用Navicat工具创建MySQL数据库连接
使用Navicat工具创建MySQL数据库连接
|
8月前
|
关系型数据库 MySQL 数据库连接
忘记 mysql 数据库连接密码(解决方案)
忘记 mysql 数据库连接密码(解决方案)
84 0
|
4月前
|
SQL Java 关系型数据库
在IDEA中配置MySQL数据库连接以及在使用mybatis时设置sql语句的代码提示功能
在IDEA中配置MySQL数据库连接以及在使用mybatis时设置sql语句的代码提示功能
|
8月前
|
关系型数据库 MySQL 数据库连接
Python基础 之 Python3 MySQL 数据库连接 - PyMySQL 驱动 10
Python3 MySQL 数据库连接 - PyMySQL 驱动
59 0
|
8月前
|
关系型数据库 MySQL 数据库连接
Python基础 之 Python3 MySQL 数据库连接 - PyMySQL 驱动 9
Python3 MySQL 数据库连接 - PyMySQL 驱动
56 0
|
8月前
|
SQL 关系型数据库 MySQL
Python基础 之 Python3 MySQL 数据库连接 - PyMySQL 驱动 8
Python3 MySQL 数据库连接 - PyMySQL 驱动
57 0
|
8月前
|
SQL 关系型数据库 MySQL
Python基础 之 Python3 MySQL 数据库连接 - PyMySQL 驱动 7
Python3 MySQL 数据库连接 - PyMySQL 驱动
57 1
|
8月前
|
SQL 关系型数据库 MySQL
Python基础 之 Python3 MySQL 数据库连接 - PyMySQL 驱动 6
Python3 MySQL 数据库连接 - PyMySQL 驱动
52 1