第一種是:
直到今天才想到了微軟的KB967723補丁,
微軟補丁造成MYSQL經常連接失敗解決方法
微軟補丁KB967723造成MYSQL經常連接失敗解決方法
有以下兩種方法:
1,卸載微軟補丁KB967723 (不建議)
步驟:在 添加和刪除程序 中(勾選上方的“顯示更新”)在裏面可以看到更新的KB967723這個補丁,然後就想卸載普通軟件一樣卸載,卸載中會提示你,如果卸載可能導致程序運行出錯,沒關係,選擇“是”,繼續卸載。卸載完成後重啓數據庫服務器。
2,修改註冊表(推薦此方法)
本方法是微軟給出的修改註冊表修復該Bug的的方法,
原因是TCP 端口的默認值 是 5000 。建議調整TCP端口值爲65533。
步驟:找到註冊表路徑 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters
新增 MaxUserPort
值名稱: MaxUserPort
值類型: DWORD
建議值爲 65533 {有效範圍: 5000 65534 (十進制)}
退出註冊表,重啓服務器即可。
微軟原文地址 :http://support.microsoft.com/kb/q196271
第二中:MYSQL達到最大連接數
方法一:進入MYSQL安裝目錄 打開MYSQL配置文件 my.ini 或 my.cnf查找 max_connections=100 修改爲 max_connections=1000 服務裏重起MYSQL即可
方法二:MySQL的最大連接數默認是100客戶端登錄:mysql -uusername -ppassword
設置新的最大連接數爲200:mysql> set GLOBAL max_connections=200
顯示當前運行的Query:mysql> show processlist
顯示當前狀態:mysql> show status
退出客戶端:mysql> exit
查看當前最大連接數:mysqladmin -uusername -ppassword variables
方法三:以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可以獲得同樣的效果。
第三\
2)檢查磁盤空間是否還有剩餘可用空間,儘量保持有足夠的磁盤空間可用。
3)檢查 my.ini 裏的 basedir (MySQL 安裝地址) 和 datadir (數據目錄存放地址)等參數設置是否正確,然後重新啓動下 MySQL 服務。
4)如果在刷新後偶爾能夠正常顯示而且服務器是Windows系統的話,那麼減小Windows中TcpTimedWaitDelay時間可解決此類問題,默認情況下爲240(未設置的情況下也是這個數值)此項設置需要到註冊表如下位置進行設置HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TcpTimedWaitDelay 如果註冊表中沒有TcpTimedWaitDelay這個項目,請增加這個項目,並設置爲雙字節(DWORD)類型數值設置爲30
~ 60 之間即可。
Windows 下:
1、啓動MySQL服務:net start mysql
2、停止MySQL服務:net stop mysql
3、重啓MySQL服務:net restart mysql
Linux下:
1、Linux系統下啓動MySQL的命令:
mysqladmin start
/ect/init.d/mysql start (前面爲mysql的安裝路徑)
2、linux下重啓MySQL的命令:
mysqladmin restart
/ect/init.d/mysql restart (前面爲mysql的安裝路徑)
3、linux下關閉MySQL的命令:
mysqladmin shutdown
/ect/init.d/mysql shutdown (前面爲mysql的安裝路徑)