mysql的最大連接數默認是100, 這個數值對於並發連接很多的數據庫應用是遠遠不夠的,當連接請求大於默認連接數後,就會出現無法連接數據庫的錯誤,因此我們需要把它適當調大壹些, 有兩種辦法可以修改最大連接數,壹種是修改safe_mysqld,另壹種是直接修改原代碼並重新編譯。下面我們就分別介紹這兩種方法:
1.修改safe_mysqld
找到safe_mysqld編輯它,找到mysqld啟動的那兩行,在後面加上參數 :
-O max_connections=1000
例如 :(其中前面有---的是原來的內容,而+++是修改過以後的)
--- safe_mysqld.orig Mon Sep 25 09:34:01 2000
+++ safe_mysqld Sun Sep 24 16:56:46 2000
@@ -109,10 +109,10 @@
if test \"$#\" -eq 0
then
nohup $ledir/mysqld --basedir=$MY_BASEDIR_VERSION --datadir=$DATADIR
- --skip-locking >> $err_log 2>&1
+ --skip-locking -O max_connections=1000 >> $err_log 2>&1
else
nohup $ledir/mysqld --basedir=$MY_BASEDIR_VERSION --datadir=$DATADIR
- --skip-locking \"$@\" >> $err_log 2>&1
+ --skip-locking \"$@\" -O max_connections=1000 >> $err_log 2>&1
fi
if test ! -f $pid_file # This is removed if normal shutdown
then
然後關閉mysql重啟它,用
/mysqladmin所在路徑/mysqladmin -uroot -p variables
輸入root數據庫賬號的密碼後可看到
| max_connections | 1000 |
即新改動已經生效。
2.修改原代碼
解開MySQL的原代碼,進入裏面的sql目錄修改mysqld.cc找到下面壹行:
{ \"max_connections\", (long*) &max_connections,1000,1,16384,0,1},
把它改為:
{ \"max_connections\", (long*) &max_connections,1000,1,16384,0,1},
存盤退出,然後./configure ;make;make install可以獲得同樣的效果。
3、
查看max_connections
進入MySQL,用命令:show variables
查看數據庫最大可連接數的變量值:max_connections
查看threads_connected
進入MySQL,用命令:show status
查看當前活動的連接線程變量值:threads_connected
設置max_connections
設置辦法是在my.cnf文件中,添加下面的最後紅色的壹行:
--------------------------------------------------------------------------------
[mysqld]
port=3306
#socket=MySQL
skip-locking
set-variable = key_buffer=16K
set-variable = max_allowed_packet=1M
set-variable = thread_stack=64K
set-variable = table_cache=4
set-variable = sort_buffer=64K
set-variable = net_buffer_length=2K
set-variable = max_connections=32000
--------------------------------------------------------------------------------
修改完畢後,重啟MySQL即可。當然,為了確保設置正確,應該查看壹下max_connections。
註意:
1、雖然這裏寫的32000。但實際MySQL服務器允許的最大連接數16384;
2、除max_connections外,上述其他配置應該根據妳們系統自身需要進行配置,不必拘泥;
3、添加了最大允許連接數,對系統消耗增加不大。
4、如果妳的mysql用的是my.ini作配置文件,設置類似,但設置的格式要稍作變通