MySQL最大连接数设置_独步秋风的博客-CSDN博客_mysql最大连接数设置


本站和网页 https://blog.csdn.net/qq_33326449/article/details/88998064 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

MySQL最大连接数设置_独步秋风的博客-CSDN博客_mysql最大连接数设置
MySQL最大连接数设置
独步秋风
于 2019-04-03 16:09:12 发布
2162
收藏
分类专栏:
Mysql
文章标签:
mysql
max_connections
Mysql
专栏收录该内容
55 篇文章
1 订阅
订阅专栏
“Can not connect to MySQL server. Too many connections”-mysql 1040错误,
这是因为访问MySQL且还未释放的连接数目已经达到MySQL的上限。通常,mysql的最大连接数默认是100, 最大可以达到16384
 第一种:命令行修改。
mysql>mysql -uuser -ppassword(命令行登录MySQL)
mysql>show variables like 'max_connections';(查可以看当前的最大连接数)
msyql>set global max_connections=1000;(设置最大连接数为1000,可以再次查看是否设置成功)
mysql>exit(推出)
    这种方式有个问题,就是设置的最大连接数只在mysql当前服务进程有效,一旦mysql重启,又会恢复到初始状态。
    因为mysql启动后的初始化工作是从其配置文件中读取数据的,而这种方式没有对其配置文件做更改
第二种:修改配置文件。
   这种方式说来很简单,只要修改MySQL配置文件my.ini 或 my.cnf的参数max_connections,
 将其改为max_connections=1000,然后重启MySQL即可。但是有一点最难的就是my.ini这个文件在哪找。
   通常有两种可能,一个是在安装目录下(这是比较理想的情况),另一种是在数据文件的目录下
   安装的时候如果没有人为改变目录的话,一般就在C:/ProgramData/MySQL往下的目录下
与连接数相关的几个参数:
     在修改最大连接数的时候会有这样一个疑问—这个值是不是越大越好,或者设置为多大才合适?这个参数的大小要综合很多因素来考虑,比如使用的平台所支持的线程库数量(windows只能支持到2048)、服务器的配置(特别是内存大小)、每个连接占用资源(内存和负载)的多少、系统需要的响应时间等。可以在global或session范围内修改这个参数。连接数的增加会带来很多连锁反应,需要在实际中避免由此引发的负面影响。
    首先看一下MySQL的状态:
mysql> status; -------------- mysql  Ver 14.14 Distrib 5.5.15, for Win32 (x86)
Connection id:          1 Current database: Current user:           root@localhost SSL:                    Not in use Using delimiter:        ; Server version:         5.5.15 MySQL Community Server (GPL) Protocol version:       10 Connection:             localhost via TCP/IP Server characterset:    utf8 Db     characterset:    utf8 Client characterset:    gbk Conn.  characterset:    gbk TCP port:               3306 Uptime:                 1 hour 3 min 27 sec
Threads: 12  Questions: 18  Slow queries: 10  Opens: 33  Flush tables: 5  Open tab les: 34  Queries per second avg: 6.256 --------------
Open tables:34,即当前数据库打开表的数量是34个,注意这个34并不是实际的34个表,因为MySQL是多线程的系统,几个不同的并发连接可能打开同一个表,这就需要为不同的连接session分配独立的内存空间来存储这些信息以避免冲突。因此连接数的增加会导致MySQL需要的文件描述符数目的增加。另外对于MyISAM表,还会建立一个共享的索引文件描述符。
    在MySQL数据库层面,有几个系统参数决定了可同时打开的表的数量和要使用的文件描述符,那就是table_open_cache、max_tmp_tables和open_files_limit。
mysql> show variables like 'table_open%'; +------------------+-------+ | Variable_name    | Value | +------------------+-------+ | table_open_cache | 256   | +------------------+-------+ 1 row in set (0.00 sec)
table_open_cache:256,这就是说所有的MySQL线程一共能同时打开256个表,我们可以搜集系统的打开表的数量的历史记录和这个参数来对比,决定是否要增加这个参数的大小。查看当前的打开表的数目(Open tables)可用上边提到过的status命令,另外可以直接查询这个系统变量的值:
mysql> show status like 'open_tables'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | Open_tables   | 3     | +---------------+-------+ 1 row in set (0.00 sec)
Open_tables就是当前打开表的数目,通过flush tables命令可以关闭当前打开的表。 这个值如果过大,并且如果没有经常的执行flush tables命令,可以考虑增加table_open_cache参数的大小。
接下来看max_tmp_tables:
mysql> show variables like 'max_tmp%'; +----------------+-------+ | Variable_name  | Value | +----------------+-------+ | max_tmp_tables | 32    | +----------------+-------+ 1 row in set (0.00 sec)
max_tmp_tables:32即单个客户端连接能打开的临时表数目。查看当前已打开的临时表的信息:
mysql> show global status like '%tmp%table%'; +-------------------------+-------+ | Variable_name           | Value | +-------------------------+-------+ | Created_tmp_disk_tables | 0     | | Created_tmp_tables      | 11    | +-------------------------+-------+ 2 rows in set (0.00 sec)
根据这两个值可以判断临时表的创建位置,一般选取BLOB和TEXT列、Group by 和 Distinct语句的数据量超过512 bytes,或者union的时候select某列的数据超过512 bytes的时候,就直接在磁盘上创建临时表了,另外内存中的临时表变大的时候,也可能被MySQL自动转移到磁盘上(由tmp_table_size和max_heap_table_size参数决定)。
增加table_open_cache或max_tmp_tables 参数的大小后,从操作系统的角度看,mysqld进程需要使用的文件描述符的个数就要相应的增加,这个是由open_files_limit参数控制的。
mysql> show variables like 'open_files%'; +------------------+-------+ | Variable_name    | Value | +------------------+-------+ | open_files_limit | 2670  | +------------------+-------+ 1 row in set (0.00 sec)
但是这个参数是OS限制的,所以我们设定的值并不一定总是生效。如果OS限制MySQL不能修改这个值,那么置为0。如果是专用的MySQL服务器上,这个值一般要设置的尽量大,就是设为没有报Too many open files错误的最大值,这样就能一劳永逸了。当操作系统无法分配足够的文件描述符的时候,mysqld进程会在错误日志里记录警告信息。
相应的,有两个状态变量记录了当前和历史的文件打开信息:
mysql> show global status like '%open%file%'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | Open_files    | 0     | | Opened_files  | 76    | +---------------+-------+ 2 rows in set (0.00 sec)
MySQL为每个连接分配线程来处理,可以通过threads_connected参数查看当前分配的线程数量:
mysql> show status like '%thread%'; +------------------------------------------+-------+ | Variable_name                            | Value | +------------------------------------------+-------+ | Delayed_insert_threads                   | 0     | | Performance_schema_thread_classes_lost   | 0     | | Performance_schema_thread_instances_lost | 0     | | Slow_launch_threads                      | 0     | | Threads_cached                           | 0     | | Threads_connected                        | 1     | | Threads_created                          | 1     | | Threads_running                          | 1     | +------------------------------------------+-------+ 8 rows in set (0.00 sec)
比较threads_connected参数和前面提到的max_connections参数,也可以作为目前的系统负载的参照,决定是否需要修改连接数。
查看每个线程的详细信息:mysql>show processlist;对影响系统运行的线程:kill connection|query threadid的命令杀死。
独步秋风
关注
关注
点赞
收藏
评论
MySQL最大连接数设置
“Can not connect to MySQL server.Too many connections”-mysql 1040错误,这是因为访问MySQL且还未释放的连接数目已经达到MySQL的上限。通常,mysql的最大连接数默认是100, 最大可以达到16384第一种:命令行修改。 mysql>mysql -uuser -ppassword(命令行登录...
复制链接
扫一扫
专栏目录
解析mysql中max_connections与max_user_connections的区别
12-15
在mysql的手册中已经对max_user_connections有一点说明,它是用来限制用户资源的,怎么限制用户资源呢?这里做了个小测试。首先产看该全局变量的值mysql> select @@max_user_connections;+————————+| @@max_user_connections |+————————+| 0 |+————————+1 row in set (0.00 sec)默认情况系是为0的为0是什么意思呢?它是说不限制用户资源的。在这里我改变一下它的值,并在查询,注意这改变在服务器重启后无效,想一直保存的话就放在选项文件里
mysql max connects_出现mysql max-connections问题解决解决办法
weixin_28843135的博客
01-27
4069
查看变量:mysql -pshow variables;或者mysql -uroot -p variables |grep max_connections显示当前运行的Query:mysql> show processlist;显示当前状态:mysql> show status;修改MYSQL最大连接数的3种方法:1. mysql>set GLOBAL max_connectio...
参与评论
您还未登录,请先
登录
后发表或查看评论
mysql连接数怎么增加
weixin_59539033的博客
11-11
198
MySQL数据库的默认最大连接数是:100,首先查看当前 Mysql 最大连接数量是多少。实时的数据库现在的有效连接数。这里可看到是 324的连接数量。数据库连接数量如果想重新添加连接。修改MySQL最大连接数量。这个理可以看到是19个。修改最大数为1000。
【mysql 最大连接数】5分钟快速修改mysql最大连接数
赖德发的博客
04-23
1872
修改最大连接数
vim /etc/my.cnf
max_connections=5000
重启电脑:
systemctl restart mysqld
查询当前最大连接数:
show variables like '%max_connections%';
Mysql8上还有个mysqlx_max_connections
show variables like ‘%max_connection%’,myxqlx_max_connections是X protocal connection,一般没用到。
mysql连接出现(1040, ‘ny connections‘)
qq_46036099的博客
04-25
1735
与此同时navicat连接mysql出现too many connections 错误,睡一觉起来就可以连接了,应该是mysql设置的最大连接数太小导致的,在/etc/mysql/my.cnf里面加上max_connections=1000,wait_timeout=5,未试验过,仅参考,后在本机作尝试。
...
pymysql.err.OperationalError: (1040, ‘ny connections‘)
weixin_44305115的博客
03-16
5727
问题如上,确实困扰了我很久的一个问题,这个问题很可能是由于开启的会话session不是复用的,然后太多的session可能导致再次请求数据库时会发生拥堵,此时就需要将这些session产生的数据库连接回收掉,mysql默认的回收时间是8个小时,也就是28800秒,我这里设置为了60s然后问题解决
具体的代码就是在生成create_engine的时候进行添加:
self.engine = create_engine(f"mysql+pymysql://{user}:{password}@{host}:{po
MySQL 报错1040 ‘Too many connections‘ 原因及解决方案
热门推荐
m0_55837832的博客
05-12
1万+
MySQL 报错1040 ‘Too many connections’
报错原因:
实际连接数超过了mysql 允许的最大连接数,访问量过高,MySQL服务器抗不住。
解决办法
1、修改max_connections,如果这个值已经很大,2、这个时候就要考虑增加从服务器分散读压力;
Windows 找到mysql.ini(Linux 修改/etc/my.cnf文件,在[mysqld]中新增max_connections=N)。修改允许最大连接数max_connections=N,默认是100 一般设置到50
mysql性能呢个调优之tmp_table_size
weixin_34080903的博客
06-19
907
通过设置tmp_table_size选项来增加一张临时表的大小,例如做高级GROUP BY操作生成的临时表。如果调高该值,MySQL同时将增加heap表的大小,可达到提高联接查询速度的效果,建议尽量优化查询,要确保查询过程中生成的临时表在内存中,避免临时表过大导致生成基于硬盘的MyISAM表。mysql> show global status like 'created...
MySQL参数之max_connections
oradbm的博客
05-09
4847
连接请求的变量:
max_connections
MySQL的最大连接数,增加该值增加mysqld 要求的文件描述符的数量。如果服务器的并发连接请求量比较大,建议调高此值,以增加并行连接数量,当然这建立在机器能支撑的情况下,因为如果连接数越多,介于MySQL会为每个连接提供连接缓冲区,就会开销越多的内存,所以要适当调整该值,不能盲目提高设值。
数值过小会经常出现ERROR 1040: Too many connections错误,可以过’conn%’通配符查看当前状态的连接数量,以定夺该值的大.
解决pymysql.err.OperationalError: (1040, ‘Too many connections‘)
LelemamaAnne的博客
02-03
2590
我用sqlalchemy orm方式连接数据库,处理数据。一台机器上程序运行正常。但是另一台机器上就报错pymysql.err.OperationalError: (1040, 'Too many connections')。
首先我确定连接方式肯定没错。程序也没错。那猜测是两台机器上mysql的配置不同。百度之后,获得答案如下:以下是转载别人的答案。
pymysql.err.OperationalError: (1040, 'Too many connections') 超出连接数据库最大连接数所致,
mysql maxtmptables_mysql tmp_table_size和max_heap_table_size大小配置
weixin_34561373的博客
02-07
134
针对16G内存的配置复制代码 代码如下:tmp_table_size = 64M先说下tmp_table_size吧:它规定了内部内存临时表的最大值,每个线程都要分配。(实际起限制作用的是tmp_table_size和max_heap_table_size的最小值。)如果内存临时表超出了限制,MySQL就会自动地把它转化为基于磁盘的MyISAM表,存储在指定的tmpdir目录下,默认:mysql&...
mysql 最大线程_查看mysql 最大连接数,连接线程数
weixin_42500195的博客
01-19
690
查看最大连接数:show variables like '%max_connections%';查看已连接:需要是管理员用户登录show full processlist;修改最大连接数临时:set GLOBAL max_connections = 200;重启后失效永久:修改配置文件:max_connections = 500查看当前活跃线程:mysql> show status like...
mysql调优最大连接数
weixin_44699162的博客
11-13
81
一、mysql调优
1.1 报错:
Mysql: error 1040: Too many connections
1.2 原因:
1、访问量过高,MySQL服务器抗不住,这个时候就要考虑增加从服务器分散读压力。<br>2、MySQL配置文件中max_connections值过小,默认151。
1.3 最优计算方法:
服务器响应的...
Mysql5.6报错1040 Too many connections的解决方法
BBX__XB的博客
03-25
3372
错误代码1040,Too many connections字面意思就是连接数太多,原因有两种:
确实跑的程序较多,出现连接数太多(如一台服务器上跑很多项目造成)
自己写的程序代码本身有问题,可查找问题原因
本文记录上述第一种情况,确为工作中所遇见,在此记录。
mysql安装目录为
D:\mysql-5.6.24-win32
在目录为D:\mysql-5.6.24-win32\bin中允许cmd后执行下面命令查看当前最大连接数
mysql
show variables like '%max_connec
Mysql max_connections参数
hbhe0316的专栏
11-27
1650
官网连接:https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.htmlhttps://www.cndba.cn/hbhe0316/article/22625https://www.cndba.cn/hbhe0316/article/22625
要控制服务器允许同时连接的最大客户端数量,可以在服务器启动或运...
mysql 最大连接数max_connections解决办法
最新发布
a15804226768的博客
11-16
345
1.问题原因1)客户端程序在退出之前没有调用mysql_close()。[写程序的疏忽,或者数据库的db类库没有自动关闭每次的连接]2)客户端sleep的时间在wait_timeout或interactive_timeout规定的秒内没有发出任何请求到服务器。[类似常连,类似于不完整的tcp ip协议构造,服务端一直认为客户端仍然存在(有可能客户端已经断掉了)]3)客户端程序在结束之前向服务器发送了请求还没得到返回结果就结束掉了。[参看:tcp ip协议的三次握手]2.解决办法。
解决mysql集群模式中出现“1040,too māny connections”
anlu的博客
01-19
1185
一.mysql集群中,有一台机器连接的时候报错 ERROR 1040 (HY000): Too many connections解决方案有两种1.如果是线上环境,不能随意起停数据库,所以得手动释放一些无用的链接,2.修改/etc/my.cnf 中的max_connections=1000,wait_timeout=5,如果没有设置,那么就自己添加,修改之后重启服务即可,产生原因,链接数超过了mys
pymysql.err.OperationalError: (1040, u'Too many connections')
weixin_42013447的博客
05-23
4748
本文适用linux系统下的mysql
适用问题:程序连接mysql,且有正常close连接。但是某个时刻报错1040, u’Too many connections’
产生的原因:客户端程序close,但是mysql依然保持连接,只是连接处于睡眠状态。默认mysql保持连接8小时,超过8小时后连接关闭
问题查看:
连接数据库 mysql -u xxx -p
查看最大连接数和使用连接数
show v...
MySQL性能优化之max_connections配置
lizarel的博客
05-21
697
MySQL的最大连接数,增加该值增加mysqld 要求的文件描述符的数量。如果服务器的并发连接请求量比较大,建议调高此值,以增加并行连接数量,当然这建立在机器能支撑的情况下,因为如果连接数越多,介于MySQL会为每个连接提供连接缓冲区,就会开销越多的内存,所以要适当调整该值,不能盲目提高设值。
数值过小会经常出现ERROR 1040: Too many connections错误,可以过’conn...
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022 CSDN
皮肤主题:程序猿惹谁了
设计师:我叫白小胖
返回首页
独步秋风
CSDN认证博客专家
CSDN认证企业博客
码龄7年
暂无认证
174
原创
2638
周排名
1024
总排名
139万+
访问
等级
1万+
积分
2459
粉丝
497
获赞
139
评论
2020
收藏
私信
关注
热门文章
springboot中各个版本的redis配置问题
63069
webservice面试题
56947
java使用validator进行校验
38661
git提交忽略不必要的文件或文件夹
34406
mysql学习总结(一)---如何查看mysql的安装路径
32152
分类专栏
mtail
2篇
服务器性能
1篇
Linux
107篇
Ansible
3篇
Java
85篇
Mysql
55篇
Docker
28篇
Kubernetes
10篇
Prometheus
7篇
Kapacitor
1篇
Influxdb
9篇
Helm
1篇
Python
1篇
Maven
8篇
MyBatis
12篇
Redis
8篇
Grafana
7篇
玩转Spring Boot
13篇
Spring
18篇
Oracle
24篇
数据库
23篇
英语
1篇
工具
41篇
TiDB
1篇
AIX
5篇
leetcode
1篇
Spring Boot采坑记录
2篇
网络
1篇
windows
4篇
文本处理三剑客
4篇
Shell
8篇
Suse
1篇
码云
1篇
编程模式
1篇
Java 框架
15篇
Android
30篇
Android 面试要点
31篇
设计模式
7篇
开源项目
5篇
Java面试
23篇
算法
3篇
webservice
3篇
Servlet/Jsp
7篇
逻辑题整理
3篇
Java集合
14篇
服务器
7篇
Tomcat
4篇
面试
24篇
JavaScript
5篇
Git
7篇
DevOps
1篇
开源组件
10篇
认知学习
11篇
Nginx
7篇
Java并发编程
2篇
vim
2篇
单元测试
2篇
jquery
2篇
JDK源码
2篇
正则表达式
2篇
读书随笔
14篇
中间件
5篇
最新评论
Failed to connect to the host via ssh: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,pas
榕729:
十分感谢,周四就要开始期末考试了
Mybatis Generator最完整配置详解
阿四i:
用%代替表名,表示全部表都生成
AIX系统内存占用率的计算
苏小明啊:
aix没有free命令的
集合拷贝几种常用方法
ck78:
我测试用的String 结果用自定义对象测试了一下发现会改变
集合拷贝几种常用方法
F#F!:
亲测,会被修改
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
mtail 编程指北
mtail 部署介绍
MySQL查看库下有多少张表
2022年13篇
2021年42篇
2020年114篇
2019年76篇
2018年195篇
2017年95篇
2016年133篇
目录
目录
分类专栏
mtail
2篇
服务器性能
1篇
Linux
107篇
Ansible
3篇
Java
85篇
Mysql
55篇
Docker
28篇
Kubernetes
10篇
Prometheus
7篇
Kapacitor
1篇
Influxdb
9篇
Helm
1篇
Python
1篇
Maven
8篇
MyBatis
12篇
Redis
8篇
Grafana
7篇
玩转Spring Boot
13篇
Spring
18篇
Oracle
24篇
数据库
23篇
英语
1篇
工具
41篇
TiDB
1篇
AIX
5篇
leetcode
1篇
Spring Boot采坑记录
2篇
网络
1篇
windows
4篇
文本处理三剑客
4篇
Shell
8篇
Suse
1篇
码云
1篇
编程模式
1篇
Java 框架
15篇
Android
30篇
Android 面试要点
31篇
设计模式
7篇
开源项目
5篇
Java面试
23篇
算法
3篇
webservice
3篇
Servlet/Jsp
7篇
逻辑题整理
3篇
Java集合
14篇
服务器
7篇
Tomcat
4篇
面试
24篇
JavaScript
5篇
Git
7篇
DevOps
1篇
开源组件
10篇
认知学习
11篇
Nginx
7篇
Java并发编程
2篇
vim
2篇
单元测试
2篇
jquery
2篇
JDK源码
2篇
正则表达式
2篇
读书随笔
14篇
中间件
5篇
目录
评论
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值