预防MySQL宕机:合理设置MySQL最大用户连接数
来源:互联网 发布:数字验证码识别算法 编辑:程序博客网 时间:2024/05/02 04:06
本文的原文地址在此:http://www.percona.com/blog/2014/07/29/prevent-mysql-downtime-set-max_user_connections/,以下是译文。
-----------------------------------------------------------这是一条分割线-----------------------------------------------------------
July 29, 2014 byPeter Zaitsev
MySQL宕机的原因之一是用户连接数耗尽。你见过这个错误吗:“ERROR 1040 (00000): Too many connections.”如果你用过很长时间的MySQL,一定遇见过这个错误。这是一个让人很不爽的错误,而且有可能导致MySQL彻底宕掉。transient errors with successful transactions mixed with failingones as well as only some processes stopping to run properly causing variouskinds of effects if not monitored properly.(这句话看不懂)
造成连接数耗尽的原因有很多,最常见的原因是Web/App服务器对于连接数没有限制或连接泄漏,导致产生了太多连接。
我见过的最普遍的解决办法是简单的增大最大连接数,使MySQL不会出现耗尽连接数的情况。但这种做法会造成资源利用的问题——大量的连接数必然需要大量的内存,这会导致MySQL被交换(swap)或被OOM killer进程杀掉,或者性能变得非常差。
其实面对这个错误(Too many connections.)有更好的解决办法:给不同的程序分配不同的账户,并对每个账户设置不同的最大连接数。
mysql > GRANT USAGE ON *.* TO ‘batchjob1’@’localhost’
-> WITH MAX_USER_CONNECTIONS 10;
这个源自MySQL 5.0版本的语句有很多好处:
安全:给子账户只分配必要的权限,可以使你的程序在遇见开发错误和入侵者时,显得更安全。
阻止连接数耗尽:如果程序有会耗尽连接数的bug,也只会使系统的一部分受到影响,而其他的应用程序依然可以正常地使用数据库。
过载保护:连接数会限制并发查询的数量。过大的并发量也是导致宕机的常见原因,限制连接数可以降低程序并发查询带来的压力。
在我看来,仅仅只设置my.cnf/my.ini中max_user_connection的值是很粗糙的解决方式,最好根据不同程序的实际情况分配不同的账户和连接数。只有在多租户的环境,max_user_connection才会显得非常有价值,因为该环境下的大量同级用户会共享整个系统。
- 预防MySQL宕机:合理设置MySQL最大用户连接数
- MySQL服务器最大连接数的合理设置
- MySQL服务器最大连接数的合理设置
- MySQL服务器最大连接数的合理设置
- MySQL服务器最大连接数的合理设置
- MySQL服务器最大连接数的合理设置
- MySQL服务器最大连接数的合理设置
- MySQL服务器最大连接数怎么设置才合理
- MySQL服务器最大连接数的合理设置
- MySQL服务器最大连接数的合理设置
- MySQL最大连接数设置
- MySQL最大连接数设置
- MySQL最大连接数设置
- MySQL最大连接数设置
- 设置mysql最大连接数
- MySQL最大连接数设置
- 设置mysql最大连接数
- MySQL最大连接数设置
- android 自定义ImageView实现图片手势滑动,多点触摸放大缩小效果
- 我听到慈善和文明的脚步声在中国更响了
- 31-异步获取数据
- Android DiskLruCache完全解析,硬盘缓存的最佳方案
- shell 编程——for in 循环
- 预防MySQL宕机:合理设置MySQL最大用户连接数
- windows下使用SCons编译tolua++
- 一箭穿心
- poj2533Longest Ordered Subsequence LIS(优化)
- 如果将synthesize省略,语义特性声明为assign retain copy时,自己实现setter和getter方法
- Linux 文件和目录操作的相关函数
- 五角星
- HDU 1541 Stars (树状数组)
- 04.工厂方法模式【FACTORY METHOD PATTERN】