mysql查看最大连接数和修改mysql数据库最大连接数方法

文章介绍

怎么查看 MySQL最大连接

使用 MySQL 数据库的站点,当访问连接数过多时,就会出现 "Too many connections" 的错误。出现这种错误有两种情况,一种是网站访问量实在太大,服务器已经负担不起,此时就应该考虑负载均衡或者其它减少服务器压力的办法。另一种情况就是 MySQL 的最大连接数设置得太小,当访问量稍大就出现连接过多的错误。win7下配置PHP+Apache+Mysql运行环境

MySQL 默认的最大连接数为 100,可以在 mysql 客户端使用以下命令查看


mysql> show variables like 'max_connections';

此命令将得到类似以下的输出结果:


+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 2000 |
+-----------------+-------+
1 row in set (0.00 sec)

  要对 mysql 的最大连接数进行修改,只需要在 my.cnf 配置文件里面修改 max_connections 的值,然后重启 mysql 就行。如果 my.ini 文件中没有找到 max_connections 条目,可自行添加以下条目

max_connections = 200

修改MySQL最大连接数

   
01 方法一: 02 02 03 03 进入MySQL安装目录 打开MySQL配置文件 my.ini 或 my.cnf查找 max_connections=100 修改为 max_connections=1000 服务里重起MySQL即可 04 04 05 05 方法二: 06 06 07 07 MySQL最大连接数默认是100客户端登录: 08 08 09 09 MySQL -uusername -ppassword 10 10 11 11 设置新的MySQL最大连接数为200: 12 12 13 13 MySQL> set GLOBAL max_connections=200 14 14 15 15 显示当前运行的Query: 16 16 17 17 MySQL> show processlist 18 18 19 19 显示当前状态: 20 20 21 21 MySQL> show status 22 22 23 23 退出客户端:MySQL> exit 24 24 25 25 查看当前MySQL最大连接数:MySQLadmin -uusername -ppassword variables 26 26 27 27 方法三: 28 28 29 29 以centos 4.4 下面的MySQL 5.0.33 手工编译版本为例说明: 30 30 31 31 vi /usr/local/MySQL/bin/MySQLd_safe 32 32 33 33 找到safe_MySQLd编辑它,找到MySQLd启动的那两行,在后面加上参数 : 34 34 35 35 -O max_connections=1500 36 36 37 37 具体一点就是下面的位置: 38 38 39 39 用红字特别说明: 40 40 41 41 then $NOHUP_NICENESS $ledir/$MySQLD 42 42 $defaults --basedir=$MY_BASEDIR_VERSION 43 43 --datadir=$DATADIR $USER_OPTION 44 44 --pid-file=$pid_file 45 45 --skip-external-locking 46 46 -O max_connections=1500 47 47 >> $err_log 2>&1 else 48 48 eval "$NOHUP_NICENESS $ledir/$MySQLD 49 49 $defaults --basedir=$MY_BASEDIR_VERSION 50 50 --datadir=$DATADIR $USER_OPTION 51 51 --pid-file=$pid_file 52 52 --skip-external-locking $args 53 53 -O max_connections=1500 >> 54 54 $err_log 2>&1" 55 55 56 56 保存。 57 57 58 58 # service MySQLd restart 59 59 # /usr/local/MySQL/bin/MySQLadmin -uroot -p variables 60 60 61 61 输入root数据库账号的密码后可看到 62 62 63 63 max_connections 1500 即新改动已经生效。 64 64 65 65 还有一种方法, 66 66 67 67 修改原代码: 68 68 69 69 解开MySQL的原代码,进入里面的sql目录修改MySQLd.cc找到下面一行: 70 70 71 71 {"max_connections", OPT_MAX_CONNECTIONS, 72 72 "The number of simultaneous clients allowed.", (gptr*) &max_connections, 73 73 (gptr*) &max_connections, 0, GET_ULONG, REQUIRED_ARG, 100, 1, 16384, 0, 1, 74 74 0}, 75 75 76 76 把它改为: 77 77 78 78 {"max_connections", OPT_MAX_CONNECTIONS, 79 79 "The number of simultaneous clients allowed.", (gptr*) &max_connections, 80 80 (gptr*) &max_connections, 0, GET_ULONG, REQUIRED_ARG, 1500, 1, 16384, 0, 1, 81 81 0}, 82 82 83 83 存盘退出,然后./configure ;make;make install可以获得同样的效果。以上的相关内容就是对修改MySQL最大连接数的3种方法的介绍,望你能有所收获。  

MySQL服务器最大连接数相关知识

最近网站出现 User 数据库名称 has already more than 'max_user_connections' active connections 的报错,网站瘫痪。有必要研究下这个问题。

max_user_connections 是 MySQL 用户连接数的最大值设置,整段语句的意思是:服务器的 MySQL 的最大连接数参数设置不足。解决方法:修改 MySQL 安装目录下 my.ini 或者 my.cnf 文件内的 max_user_connections 参数的数值,重启 MySQL 服务器。

但是正常来说,MySQL默认的100个连接数是足够的。我们需要从程序上去考虑。MySQL的默认最大连接数为100(N),实际给普通用户使用只有N-1个,保留一个连接是留给超级管理员使用的,防止连接占满了不会把管理员也踢出来。很多网站在运行的时候都会出现连接数受限现象,我认为十之八九并非是网站的真实访问量太大导致连接数超标,更多是因为我们在设计网站程序的时候采用了不合理的设计架构或数据结构引起的。非正常连接超限可能原因如下(天缘即时归纳未必完整或无错讹仅供参考):

类似人数、在线时间、浏览数等统计功能与主程序数据库同属一个数据空间时就很容易出现。

复杂的动态页尤其是用户每次浏览都涉及到多数据库或多表操作时候也很容易出现。

还有就是程序设计的不合理(比如复杂运算、等待等操作放置在数据库交互行为中间进行),或者程序存在释放BUG。

计算机硬件配置太低却安装太高版、太高配置的MySQL。

未采用缓存技术。

数据库未经过优化或表格设计及其复杂。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/bc76b70e49baae25d1baa8575f9fd936.html