這段時間服務器崩潰2次,一直沒有找到原因,今天看到論壇發出的錯誤信息郵件,想起可能是mysql的默認連接數引起的問題,一查果然,老天,默認連接數才100, 怎麼夠呀,在網上找了半天資料,有說修改my.cnf的,有說修改safe_MySQLd,試了,前者無用, 後者文件找不到:)原來是以前的版本跟現在的版本有所不同。
言歸正傳,我以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可以獲得同樣的效果。