【MySql】修改max_connections 引數的方法

楊奇龍發表於2012-04-06
  開發說應用不能連線資料庫,檢視資料庫連線資訊已經超過最大允許連線數
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)
mysql> show variables like '%max_connections%'; 
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 14000 |
+-----------------+-------+
1 row in set (0.00 sec)

方法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
  -O max_connections=1500
  >> $err_log 2>&1 else
  eval "$NOHUP_NICENESS $ledir/$MYSQLD
  $defaults --basedir=$MY_BASEDIR_VERSION
  --datadir=$DATADIR $USER_OPTION
  --pid-file=$pid_file
  --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},
  把它改為:
  {"max_connections", OPT_MAX_CONNECTIONS,
  "The number of simultaneous clients allowed.", (gptr*) &max_connections,
  (gptr*) &max_connections, 0, GET_ULONG, REQUIRED_ARG, 1500, 1, 16384, 0, 1,
  0},
  存檔退出,然後./configure ;make;make install可以獲得同樣的效果。
方法3 摘自 http://www.cnblogs.com/nzperfect/archive/2009/06/29/1513319.html

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-720598/,如需轉載,請註明出處,否則將追究法律責任。

相關文章