合理设置max_user_connections以避免MySQL宕机
来源:互联网 发布:psp go 自制软件 编辑:程序博客网 时间:2024/06/12 01:08
-----------------------------------------------------------这是一条分割线-----------------------------------------------------------
July 29, 2014 byPeter Zaitsev
MySQL宕机的原因之一是用户连接数耗尽。你见过这个错误吗:“ERROR 1040 (00000): Too many connections."如果你用过很长时间的MySQL,一定遇见过。这是一个让人很不爽的错误,而且有可能导致MySQL彻底宕掉。transient errors with successfultransactions mixed with failing ones as well as only some processes stopping torun properly causing various kinds 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的值是很粗糙的解决方式,最好根据不同程序的实际情况分配不同的账户和连接数。只有在多租户(multi-tenant)的环境, max_user_connection才会显得非常有价值,因为该环境下的大量同级用户会共享整个系统。
- 合理设置max_user_connections以避免MySQL宕机
- 预防MySQL宕机:合理设置MySQL最大用户连接数
- mysql的sql_mode合理设置
- MySQL的sql_mode合理设置
- mysql的sql_mode合理设置
- mysql的sql_mode合理设置
- mysql的sql_mode合理设置
- 关于mysql中sql_mode值得合理设置
- mysql sql_mode参数的合理设置
- mysql 的max_connections和max_user_connections 的区别
- mysql 的max_connections和max_user_connections 的区别
- mysql 如何避免乱码设置
- Bitmap合理处理避免OOM
- mysql中key_buffer_size,query_cache_size,table_cache的合理设置
- MySQL服务器最大连接数的合理设置
- MySQL服务器最大连接数的合理设置
- MySQL服务器最大连接数的合理设置
- MySQL服务器最大连接数的合理设置
- MATLAB中imshow()函数支持输入类型
- NSString的一些方法
- Failed to install*.apk on device '': timeout解决方法
- 第13周项目1数组中元素值为3的倍数的数和下标为3的倍数的数
- Duilib学习笔记《01》— duilib整体框架认识
- 合理设置max_user_connections以避免MySQL宕机
- SharePoint 2013 Silverlight中使用Net客户端对象模型
- [Phonegap+Sencha Touch] 移动开发38 sencha 2.3.2+ 在 安卓2.3上使用报错 - has no method 'bind'
- 第十三周项目一(1) 数组简单试
- 数组大折腾(3)
- Lua脚本之基础语法
- HDU 3094 A tree game 树的删边游戏
- Android 5.0以下使用Material Design 特性
- 第十三周 项目1.1 1.2 1. 3 ——数组的赋值与输出