如何解决MySQL超过最大连接数问题

同一时间最多100个链接。能同时在线多少人不好说,因为这要看你的程序了。最大链接100一般够用了,不像WEB服务器的最大链接。max_user_connections 是 MySQL 用户连接数的最大值设置,整段语句的意思是:服务器的 MySQL 的最大连接数参数设置不足。解决方法:修改 MySQL 安装目录下...遇到mysql超出最大连接数,相信不少人第一反应就是查看mysql进程,看有没有慢查询,当然这个做法是完全正确的!但是很多时候真正的问题不在这里。今天有遇到同样的问题,一味查看mysql进程和慢查询日志,无果。后来老大提点了一下,查看一下nginx日志,发现有一两个访问执行时候比较长,然后使用top命令查看了一下服务器负载,惊了,居然超高!最后发现原来有一台web分流主机挂了,导致另外几台web主机负载增高,从而导致了php-fpm的执行效率降低。那么这跟mysql有什么关系呢?原因很简单,因为php执行时间过长,mysql连接迟迟未释放,就会导致连接数过多出现。最后总结:其实很多时候,一个问题的根本原因并不是那么直接的呈现出来,需要自己去跟踪。老大有一句很实用的话:遇到问题先查日志(mysql、php、nginx等)===============================================================排查连接数过多的方法当用户收到链接数告警时,意味着连接数即将达到该实例的上限。如果实例的连接数超过了实例规定的连接数,将无法创建新的连接,这个时候会影响用户的业务;Mysql 的连接通常是一个请求占用一个连接,如果该请求(update,insert,delete,select)长时间没有执行完毕,则会造成连接的堆积,迅速的消耗完数据库的连接数,这个时候技术支持人员就要登录数据库进行排序,看看到底是那些sql 占用了连接;1 、查看实例配置:可登录RDS控制台“详情与配置”查看实例额定链接数,我们假设最高支持1500个链接2、 查看当前的连接数:1)可登录RDS控制台“性能监控”查看实例当前链接数。2)或者登录数据库查询当前连接,可以使用同步账号或者用户的业务账号登录数据库,执行show processlist;[root@r41d05036.xy2.aliyun.com ~]# mysql -uroot -h127.0.0.1 -P3020 -e “show processlist”|wc -l可以看到该实例已经有1262 个连接3、排查是什么动作占用了这些连接:[root@r41d05036.xy2.aliyun.com ~]# myql -uroot -h127.0.0.1 -P3018 -e “show full processlist”>/tmp/1.logroot@r14d11038.dg.aliyun.com # more /tmp/1.log615083 my_db 223.4.49.212:54115 my_db Query 100 Sending dataINSERT INTO tmp_orders_modify (oid, tid, seller_id, status, gmt_create, gmt_modified)SELECT oid, tid, seller_id, status, gmt_create, gmt_modifiedFROM sys_info.orders WHEREgmt_modified < NAME_CONST(‘v_last’,_binary’2012-12-24 10:33:00’ COLLATE ‘binary’) AND gmt_modified >= NAME_CONST(‘v_curr’,_binary’2012-12-24 10:32:00’ COLLATE ‘binary’)621564 my_db 223.4.49.212:46596 my_db Query 3890 sorting resultinsert into tmp_trades(sid, d, h, tc, tm, tp, ic, new_tp, old_tp)select a.seller_id as sid,from orders_1 as a where seller_id =1 and is_detail = ‘1’and created < date_format(‘2012-12-24 10:35:00’, ‘%Y-%m-%d %H:00:00’)and gmt_create < date_format(‘2012-12-24 10:40:00’, ‘%Y-%m-%d %H:%i:00’)and gmt_create >= date_format(‘2012-12-24 10:35:00’, ‘%Y-%m-%d%H:%i:00’)group by d, horder by d……………….此处省略其他sql4、分析连接占用的原因:可以看到数据库中有长时间没有执行完成的sql,一直占用着连接没有释放,而应用的请求一直持续不断的涌入数据库,这个时候数据库的连接很快就被使用完;所以这个时候需要排查为什么这些sql 为什么长时间没有执行完毕,是索引没有创建好,还是sql执行耗时严重。INSERT INTO tmp_orders_modify (oid, tid, seller_id, status, gmt_create, gmt_modified)SELECT oid, tid, seller_id, status, gmt_create, gmt_modifiedFROM sys_info.orders WHEREgmt_modified < NAME_CONST(‘v_last’,_binary’2012-12-24 10:33:00’ COLLATE ‘binary’) AND gmt_modified >= NAME_CONST(‘v_curr’,_binary’2012-12-24 10:32:00’ COLLATE ‘binary’)是用户从sys_info 数据库中拉取订单到自己的业务库中那个,但是在orders 表上没有gmt_modified 的索引,导致了全表扫描;(更加详尽的排查方法可以参考:为什么我的RDS慢了);看到这条sql 正在进行sorting 排序,为什么导致sql 长时间sorting,通常情况下为排序的结果集太大导致排序不能在内存中完成,需要到磁盘上排序,进而导致了性能的下降;解决的办法就是降低排序的结果集,常用的手段是利用索引的有序性,消除排序,或者建立适当的索引减小结果集;我们可以看到第二条sql 的排序字段非常的复杂,但是我们可以看到查询的时间范围是很短,只有5 分钟的时间间隔,这个时候就可以在gmt_create上创建一个索引,过滤掉大部分的记录:Alter tale order_1 add index ind_order_gmt_create(gmt_create);(该用户对orders 进行了分表,大概有50 多张分表需要添加gmt_create 字段的索引);5、经过上面两步的优化后,用户实例恢复正常:io 情况和connection 情况,可再次登录RDS控制台查看连接数。

怎么修改mysql的最大连接数

通常,mysql的最大连接数默认是100,最大可以达到16384。

1、查看最大连接数:

showvariableslike'%max_connections%';

2、修改最大连接数

方法一:修改配置文件。推荐方法一

进入MySQL安装目录打开MySQL配置文件my.ini或my.cnf查找max_connections=100修改为max_connections=1000服务里重起MySQL即可.

方法二:命令行修改。不推荐方法二

命令行登录MySQL后。设置新的MySQL最大连接数为200:

MySQL>setglobalmax_connections=200。

这种方式有个问题,就是设置的最大连接数只在mysql当前服务进程有效,一旦mysql重启,又会恢复到初始状态。因为mysql启动后的初始化工作是从其配置文件中读取数据的,而这种方式没有对其配置文件做更改。

mysql的最大连接数1般可以设置为多少?

这个根据客户的需求,根据软件产品的需求配置,如果像国内X宝,X东,人家根本不用Mysql数据库!

phpstuyd 如何设置mysql最大连接数

手动修改配置,windows中找到my.ini文件,linux中找到my.cnf文件,找到max_connections并修改保存,然后重启mysql服务。

windows上还可以在phpstudy的主界面,其他选项菜单->mysql工具->参数配置->max_connections->输入你想要的值,然后点击确定,会自动重启mysql服务的。任务占坑

mysql8最大连接数设置多少合适相关推荐

  1. 数据库连接数设置多少合适?

    引子 很多工程师习惯于使用一个组件时,参数设置依赖于默认值.或者有时候希望依赖数据分析获取到更合适的值,最终发现考虑的数据过于片面或者数据难以收集最终还是拍脑袋决定了参数的大小.今天咱们就以数据库连接 ...

  2. mysql8最大连接数设置

    1.查询当前最大连接数设置: show variables like '%max_connections%'; 以上是默认最大连接数. 2.设置最大连接数: set global max_connec ...

  3. MYSQL连接数设置

    理解qps和tps 1.TPS TPS 即TransactionsPer Second的缩写,每秒处理的事务数目.一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程**(完整处理,即客户端 ...

  4. mysql buffer_mysql read_buffer_size 设置多少合适

    很多朋友都会问mysql read_buffer_size 设置多少合适,其实这个都是根据自己的内存大小等来设置的 key_buffer_size + (read_buffer_size + sort ...

  5. bat窗口大小设置_Tomcat的JVM和连接数设置

    Windows环境下修改"%TOMCAT_HOME%bincatalina.bat"文件,在文件开头增加如下设置: set JAVA_OPTS=-Xms256m -Xmx512m ...

  6. 阿里巴巴Java开发手册建议设置HashMap的初始容量,但设置多少合适呢?

    作者 l Hollis 来源 l Hollis(ID:hollischuang) 集合是Java开发日常开发中经常会使用到的,而作为一种典型的K-V结构的数据结构,HashMap对于Java开发者一定 ...

  7. mysql连接量设置_mysql连接数设置操作方法(Too many connections)

    mysql在使用过程中,发现连接数超了~~~~ [root@linux-node1 ~]# mysql -u glance -h 192.168.1.17 -p Enter password: ERR ...

  8. MongoDB 最大连接数 设置失效的异常分析

    MongoDB 最大连接数 设置失效的异常分析 参考文章: (1)MongoDB 最大连接数 设置失效的异常分析 (2)https://www.cnblogs.com/xuliuzai/p/95892 ...

  9. linux宝塔如何开启gzip,宝塔面板nginx gzip压缩率设置多少合适

    宝塔面板nginx目前已经支持nginx采用gzip压缩,且默认已经设置了2的压缩率.那么能自己调整下压缩率吗?压缩率设置多少合适? 首先我找到了国外大神的压缩率测试,其中0为未压缩大小.9为最高压缩 ...

最新文章

  1. python常用包下载_Python及其常用模块库下载及安装
  2. AI艺术家带雕塑作品参展被海关扣押,只因摄像头眼睛被指涉及间谍行为?
  3. Windows下mysql忘记密码的解决方法
  4. 关于softmax loss这个概念
  5. Windows下用命令行导出导入MySQL数据库
  6. java开发保险案例_Java实现双保险线程的示例代码
  7. 关于XtraGrid的CustomUnboundColumnData事件的触发条件
  8. 判断对象oStringObject是否为String
  9. jQuery弹出层登录和全屏注册表单
  10. Oracle 索引的失效检查
  11. 使用Jsoup 抓取页面的数据
  12. 10.27大视野月赛翻车实况
  13. jQuery遮罩插件 jquery.blockUI.js
  14. BackTrack 3下使用spoonwep2破解WEP加密的无线路由器
  15. 如何删除数据库中的冗余数据
  16. 唱好铁血丹心谐音正规_铁血丹心(谐音歌词)
  17. 图形验证码空白如何处理
  18. Redis学习之缓存数据类型
  19. 3D可视化黑科技,VR线上智慧城市在线三维展示
  20. 用Scrapy和Selenium爬取动态数据

热门文章

  1. retrace 交易_Stackify Retrace的评论
  2. 截取android正在播放音乐的audio音频流(后台获取android音频流)
  3. MUSBMHDRC USB 2.0 编程指南解读4
  4. R语言通过在函数中设置na.rm=TRUE参数、在计算和分析中删除缺失值获得有效的计算结果(Excluding Missing Values from Analyses)
  5. 【C语言】 游戏合集 《弹球》《生命游戏》《无足鸟》创作过程及思路 通过二维数组呈现游戏画面
  6. Solaris10中如何设置ndd参数
  7. 125KHz 100cm ID 读卡电路_兴育门禁读卡器,无感门禁,2.4G有源RFID读卡器
  8. 如何创建新一代Web3企业
  9. 30ea什么意思_奥迪30fsi什么意思
  10. matplotlib数学绘图库——折线图,内置样式中文问题解决方法