mysql安装好后,有很多参数需要调优。几乎所有的涉及到调优的内容我们都都可以在my.cnf文件中设置完成。而mysql的连接数也是较为重要的调优参数之一。mysql 的默认最大连接数为100, 对于大负载量的并发需求是不够的,这时你可以修改mysql的最大连接数。

一、查看当前mysql的最大连接数的方法:

1mysqladmin -uroot -ppassword variables | grep max_connections
2或者
3mysql> SHOW GLOBAL VARIABLES WHERE Variable_name='max_connections';
4或者
5mysql> SHOW GLOBAL like '%conn%';

我个人比较喜欢用最后一种方法来查看,因为我老是记不全connections这个单词。呵呵……

二、修改方法有如下几种

mysql> SET GLOBAL max_connections=1000;
修改后会立即生效,不需要重启mysql服务,但是重启后会失效。
修改/etc/my.cnf,
在[mysqld] 下面添加:
max_connections=1000
修改后需要重启mysql服务才会重效。

以上两种方法是较为常见的方法,不过也有变态人士经常使用一些不常用的方法。如下:

1、修改/usr/bin/mysqld_safe

 1if test -z "$args"
 2then
 3$NOHUP_NICENESS $ledir/$MYSQLD $defaults --basedir=$MY_BASEDIR_VERSION --datadir=$DATADIR $USER_OPTION --pid-file=$pid_file --skip-external-locking >> $err_log 2>&1
 4else
 5eval "$NOHUP_NICENESS $ledir/$MYSQLD $defaults --basedir=$MY_BASEDIR_VERSION --datadir=$DATADIR $USER_OPTION --pid-file=$pid_file --skip-external-locking $args >> $err_log 2>&1"
 6
 7修改为:
 8
 9if test -z "$args"
10then
11$NOHUP_NICENESS $ledir/$MYSQLD $defaults --basedir=$MY_BASEDIR_VERSION --datadir=$DATADIR $USER_OPTION --pid-file=$pid_file --skip-external-locking   -O max_connections=1000 >> $err_log 2>&1
12else
13eval "$NOHUP_NICENESS $ledir/$MYSQLD $defaults --basedir=$MY_BASEDIR_VERSION --datadir=$DATADIR $USER_OPTION --pid-file=$pid_file --skip-external-locking $args -O max_connections=1000 >> $err_log 2>&1"

修改后重启mysql服务后有效。

2、修改原代码

解开MySQL的原代码,进入里面的sql目录修改mysqld.cc找到下面一行:

 1{"max_connections", OPT_MAX_CONNECTIONS,
 2  "The number of simultaneous clients allowed.", (gptr*) &max_connections,
 3  (gptr*) &max_connections, 0, GET_ULONG, REQUIRED_ARG, 100, 1, 16384, 0, 1,
 4  0},
 5
 6把它改为:
 7
 8{"max_connections", OPT_MAX_CONNECTIONS,
 9  "The number of simultaneous clients allowed.", (gptr*) &max_connections,
10  (gptr*) &max_connections, 0, GET_ULONG, REQUIRED_ARG, 1500, 1, 16384, 0, 1,
11  0},

存盘退出,然后./configure ;make;make install可以获得同样的效果。