MySQL的max_connections参数用来设置最大连接(用户)数。每个连接MySQL的用户均算作一个连接,max_connections的默认值为100。本文将讲解此参数的详细作用与性能影响。

与max_connections有关的特性

  • MySQL无论如何都会保留一个用于管理员(SUPER)登陆的连接,用于管理员连接数据库进行维护操作,即使当前连接数已经达到了max_connections。因此MySQL的实际最大可连接数为max_connections+1;
  • 这个参数实际起作用的最大值(实际最大可连接数)为16384,即该参数最大值不能超过16384,即使超过也以16384为准;
  • 增加max_connections参数的值,不会占用太多系统资源。系统资源(CPU、内存)的占用主要取决于查询的密度、效率等;
  • 该参数设置过小的最明显特征是出现“Too many connections”错误;

调整max_connections参数的值

调整此参数的方法有几种,既可以在编译的时候设置,也可以在MySQL配置文件 my.cnf 中设置,也可以直接使用命令调整并立即生效。 1、在编译的时候设置默认最大连接数 打开MySQL的源码,进入sql目录,修改mysqld.cc文件:

{“max_connections”, OPT_MAX_CONNECTIONS, “The number of simultaneous clients allowed.”, (gptr*) &max_connections, (gptr*) &max_connections, 0, GET_ULONG, REQUIRED_ARG, 100, 1, 16384, 0, 1, 0},

红色的“100”即为该参数的默认值,修改为想要的数值,存盘退出。然后执行

./configure;make;make install
 

重新编译安装MySQL;注意,由于编译安装且修改了MySQL源码,此操作最好在安装MySQL之前进行;

2、在配置文件my.cnf中设置max_connections的值 打开MySQL配置文件my.cnf

vi /etc/my.cnf
 

找到max_connections一行,修改为(如果没有,则自己添加),

max_connections = 1000

上面的1000即该参数的值。

3、实时(临时)修改此参数的值 首先登陆mysql,执行如下命令:

mysql -uroot -p
 

然后输入MySQL Root的密码。 查看当前的Max_connections参数值:

mysql> SELECT @@MAX_CONNECTIONS AS 'Max Connections';
 

设置该参数的值:

mysql> set GLOBAL max_connections=;
 

(注意上面命令的大小写) 修改完成后实时生效,无需重启MySQL。 总体来说,该参数在服务器资源够用的情况下应该尽量设置大,以满足多个客户端同时连接的需求。否则将会出现类似“Too many connections”的错误。

Mysql Too Many Connections问题解决的更多相关文章

  1. MySQL 5.6 OOM 问题解决分享【转】

    本文来自:杨德华的原创分享 | MySQL 5.6 OOM 问题解决分享 延伸阅读:Linux的内存回收和交换 当遇到应用程序OOM的时候,大多数时候只能用头疼来形容,应用程序还可以通过引流来临时重启 ...

  2. ubuntu mysql emma中文乱码问题解决

    ubuntu mysql emma中文乱码问题解决 emma默认用apt-get 安装的话,emma是不支持中文的,配置文件或直接修改emma程序源文件(python). apt-get安装emma ...

  3. mysql远程访问1045的问题解决

    mysql远程访问1045的问题解决 首先进入mysql数据库,然后输入下面两个命令 grant all privileges on *.* to 'root'@'%' identified by ' ...

  4. (转)MySQL 5.6 OOM 问题解决分享

    本文来自:杨德华的原创分享 | MySQL 5.6 OOM 问题解决分享 原文:http://www.cnblogs.com/zhoujinyi/p/5763112.html 延伸阅读:Linux的内 ...

  5. MySQL主从同步异常问题解决Client requested master to start replication from position > file size

    MySQL主从同步异常问题解决Client requested master to start replication from position > file size 一.问题描述 MySQ ...

  6. mysql数据库乱码的问题解决

    排查原因:打断点,查看到底是在执行存数据库操作之前就已经乱码了,还是存数据库操作后乱码的. 1.前者解决方案: 在web.xml里面加上: <filter> <filter-name ...

  7. 解决mysql too many connections的问题

    由于公司服务器上的创建的项目太多,随之创建的数据库不断地增加,在用navicat链接某一个项目的数据库时会出现too many connections ,从而导致项目连接数据库异常,致使启动失败. 为 ...

  8. phpstudy2016最新版本mysql无法使用innodb的问题解决

    这里顺便记录一下今天遇见的神奇问题,在使用官方最新版本的phpstudy中,其它组件一切正常,但是奇怪的发现mysql是无法开启innodb的,以下为最新的下载地址: http://www.phpst ...

  9. MySQL之aborted connections和aborted clients

    影响Aborted_clients 值的可能是客户端连接异常关闭,或wait_timeout值过小. 最近线上遇到一个问题,接口日志发现有很多超时报错,根据日志定位到数据库实例之后发现一切正常,一般来 ...

随机推荐

  1. telnet与ssh有什么不同呀

    含义: 1 使用Telnet这个用来访问远程计算机的TCP/IP协议以控制你的网络设备相当于在离开某个建筑时大喊你的用户名和口令.很快会有人进行监听,并且他们会利用你安全意识的缺乏.传统的网络服务程序 ...

  2. java四大名著

    java编程思想effective Javajava核心技术java编程语言 外加:  深入理解java虚拟机 自己动手写java虚拟机 java并发编程的艺术 java常用算法手册 其他计算机需要看 ...

  3. S1 :闭包

    闭包是指有权访问另一个函数作用域中的变量的函数.创建闭包的常见方式,就是在一个函数内部创建另一个函数,以createComparisonFunction()函数为例 function createCo ...

  4. CodeForces 86D(Yandex.Algorithm 2011 Round 2)

    思路:莫队算法,离线操作,将所有询问的左端点进行分块(分成sqrt(n) 块每块sqrt(n)个),用左端点的块号进行排序小的在前,块号相等的,右端点小的在前面. 这样要是两个相邻的查询在同一块内左端 ...

  5. Convert.ToInt16 与 Convert.ToInt32 区别

    取值的范围不同: int16:-32768 到 32767 int32:-2,147,483,648 到 2,147,483,647

  6. FZU 2082 过路费

    树链剖分模板题 #include <cstdio> #include <iostream> #include <cstring> #include <algo ...

  7. python解无忧公主的数学时间编程题001.py

    python解无忧公主的数学时间编程题001.py """ python解无忧公主的数学时间编程题001.py http://mp.weixin.qq.com/s?__b ...

  8. Oracle Enterprise Metadata Management (简称OEMM,Oracle元数据管理)12.1.3.0.1已经发布

    在数据处理及数据仓库建设中,元数据管理是必不可少的,OEMM可以解决元数据管理过程中各种关键业务问题和技术挑战,其中包括如何元数据的统计信息,了解变更数据之后对下游的影响范围,而且OEMM站在业务的角 ...

  9. ASP.NET是如何在IIS下工作的[转]

    ASP.NET与IIS是紧密联系的,由于IIS6.0与IIS7.0的工作方式的不同,导致ASP.NET的工作原理也发生了相应的变化. IIS6(IIS7的经典模式)与IIS7的集成模式的不同 IIS6 ...

  10. nginx添加未编译安装模块

    链接:http://taokey.blog.51cto.com/4633273/1318719