超出MySQL最大连接数的问题怎么解决
来源:亿速云
时间:2023-06-23 12:35:04 453浏览 收藏
哈喽!大家好,很高兴又见面了,我是golang学习网的一名作者,今天由我给大家带来一篇《超出MySQL最大连接数的问题怎么解决》,本文主要会讲到等等知识点,希望大家一起学习进步,也欢迎大家关注、点赞、收藏、转发! 下面就一起来看看吧!
超出MySQL最大连接数问题
如果遇到MySQ连接数超出最大限制了,不要慌,往下看:
通常,mysql的最大连接数默认是100, 最大可以达到16384。
查看最大连接数
show variables like '%max_connections%';
修改最大连接数
方法一:修改配置文件。推荐方法一
进入MySQL安装目录 打开MySQL配置文件 my.ini 或 my.cnf查找 max_connections=100 并将其修改为
max_connections=1000 然后再服务里重起MySQL服务即可.
方法二:命令行修改。不推荐方法二
命令行登录MySQL后。设置新的MySQL最大连接数为200:
MySQL> set global max_connections=200
如果已经连接不上了,先重启MySQL服务后再进行上述操作即可。
这种方式有个问题,就是设置的最大连接数只在mysql当前服务进程有效,一旦mysql重启,又会恢复到初始状态。由于MySQL在启动时会使用其配置文件中的数据进行初始化,因此如果没有修改配置文件,则不会有任何更改。
MySQL最大连接数,TimeOut配置
MySQL连接数配置
The max_connections parameter of MySQL is utilized to configure the maximum number of connections (users).。默认情况下,MySQL的最大连接数(max_connections)约为100,每个使用MySQL的用户都被视为一个连接
1.1查看数据库配置的最大连接数
show variables like "max_connections";
可以使用Navicat或者CMD进行命令查询
1.2如果实际情况中的最大连接数超过,就会提示TimeOut超出最大请求数
这是我们需要进行配置项的修改
设置调整最大连接数
set global max_connections = 1000;
Mysql的连接线程池
1.查看Mysql数据库当前的所有连接线程
show full processlist;
图片中可以看到当前数据库的连接线程情况 。下文所提到的TimeOut配置将用于管理休眠状态的许多线程。
Mysql TimeOut配置
查看Mysql的TimeOut配置
show global variables like '%timeout%';
参数名 | 参数作用 |
---|---|
delayed_insert_timeout | 在获取链接时,等待握手的超时时间,只在登录时有效,登录成功这个参数就不管事了。主要是为了防止网络不佳时应用重连导致连接数涨太快,一般默认即可 |
delayed_insert_timeout | 这是为MyISAM INSERT DELAY设计的超时参数,在INSERT DELAY中止前等待INSERT语句的时间 |
innodb_lock_wait_timeout | 事务遇到锁等待时的Query超时时间。跟死锁不一样,InnoDB一旦检测到死锁立刻就会回滚代价小的那个事务,锁等待是没有死锁的情况下一个事务持有另一个事务需要的锁资源,被回滚的肯定是请求锁的那个Query |
innodb_rollback_on_timeout | 这个参数关闭或不存在的话遇到超时只回滚事务最后一个Query,打开的话事务遇到超时就回滚整个事务 |
interactive_timeout/wait_timeout | 一个持续SLEEP状态的线程多久被关闭。线程每次被使用都会被唤醒为activity状态,执行完Query后成为interactive状态,重新开始计时。wait_timeout不同在于只作用于TCP/IP和Socket链接的线程,意义是一样的 |
net_read_timeout / net_write_timeout | 这个参数只对TCP/IP链接有效,分别是数据库等待接收客户端发送网络包和发送网络包给客户端的超时时间,这是在Activity状态下的线程才有效的参数 |
slave_net_timeout | 这是Slave判断主机是否挂掉的超时设置,在设定时间内依然没有获取到Master的回应就人为Master挂掉了 |
这里我们设置下Sleep线程的时间,以免线程池被消耗太多
执行修改脚本
set global interactive_timeout=100; set global wait_timeout=30;
执行完成后可以发现全局变量已修改
注意:在项目的连接字符中也需要确认是否进行了相关的配置,导致了Mysql连接失败问题
以上设置会马上生效,但是当mysql重启时这个设置会失效,更好的办法是
找到mysqld块,修改或者添加下面的设置:
max_connections=200 wait_timeout=30 interactive_timeout=100
这样修改之后,即便重启mysql也会默认载入这个配置了
关于my.ini文件的路径以及创建
今天带大家了解了的相关知识,希望对你有所帮助;关于数据库的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
208 收藏
-
174 收藏
-
317 收藏
-
371 收藏
-
244 收藏
-
288 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 507次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习