Discuz!Database Error(2005/2003/..)notconnect 解決辦法

第一種是:

直到今天才想到了微軟的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下:

1Linux系統下啓動MySQL的命令:

mysqladmin start

/ect/init.d/mysql start (前面爲mysql的安裝路徑)

2linux下重啓MySQL的命令:

mysqladmin restart

/ect/init.d/mysql restart (前面爲mysql的安裝路徑)

3linux下關閉MySQL的命令:

mysqladmin shutdown

/ect/init.d/mysql  shutdown (前面爲mysql的安裝路徑)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章