天天看点

【MySql】修改max_connections 参数的方法

  开发说应用不能连接数据库,查看数据库连接信息已经超过最大允许连接数

1 数据库系统允许的最大可连接数max_connections。该参数是可以设置的。如果不设置,默认是100。最大是16384。 

2 数据库当前的连接线程数threads_connected。该参数是动态变化的。 

如果 threads_connected == max_connections 时,数据库系统就不能提供更多的连接数了,这时,如果程序还想新建连接线程,数据库系统就会拒绝,结果如开发所说连接不了。如何修改max_connections呢?

方法1 在会话中修改

mysql> show variables like '%max_connections%'; 

+-----------------+-------+

| variable_name   | value |

| max_connections | 151 |

1 row in set (0.00 sec)

mysql> set global max_connections=14000;

query ok, 0 rows affected (0.01 sec)

| max_connections | 14000 |

方法2 在my.conf 参数中修改,不过需要重新启动mysql 服务!不推荐

方法3 在编译数据库时就进行以centos 4.4 下面的mysql 5.0.33 手工编译版本为例说明:

  vi /usr/local/mysql/bin/mysqld_safe

  找到safe_mysqld编辑它,找到mysqld启动的那两行,在后面加上参数 :

  -o max_connections=1500

  具体一点就是下面的位置:

  用红字特别说明:

  then $nohup_niceness $ledir/$mysqld

  $defaults --basedir=$my_basedir_version

  --datadir=$datadir $user_option

  --pid-file=$pid_file

  --skip-external-locking

  >> $err_log 2>&1 else

  eval "$nohup_niceness $ledir/$mysqld

  --skip-external-locking $args

  -o max_connections=1500 >>

  $err_log 2>&1"

  保存。

  # service mysqld restart

  # /usr/local/mysql/bin/mysqladmin -uroot -p variables

  输入root数据库账号的密码后可看到

  max_connections 1500 即新改动已经生效。

  还有一种方法,

  修改原代码:

  解开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},

  把它改为:

  (gptr*) &max_connections, 0, get_ulong, required_arg, 1500, 1, 16384, 0, 1,

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

方法3 摘自 http://www.cnblogs.com/nzperfect/archive/2009/06/29/1513319.html