最近伺服器資料庫時不時的崩掉,鬱悶,找了很多方法,也沒解決。把這些方法匯總轉過來。 伺服器開一段時間後,Mysql就自動掛掉~非要重啟才能解決問題,建議新手還是用mysql4.X版本,5的確很不完善。另外出現此種問題,可不是簡簡單單一種方法就能解決的。希望其他出現此問題的朋友,能得到啟發~~~ 描述1: 伺服器配置:win2003、serv-u6.0、mysql-4.0.24、php-4.3.11、sql2000 伺服器運行一段時間後,php的網站打不開,提示Can't connect to MySQL server on 'localhost'(10055)錯誤。重起mysql服務沒有作用,只有重起伺服器。但過幾天以後,又出現此錯誤。 我的my.ini配置內容: #This File was made using the WinMySQLAdmin 1.4 Tool #2005-6-26 16:53:57 #Uncomment or Add only the keys that you know how works. #Read the MySQL Manual for instructions [mysqld] basedir=C:/mysql #bind-address=192.168.13.81 datadir=C:/mysql/data #language=C:/mysql/share/your language directory #slow query log#= #tmpdir#= #port=3306 #set-variable=key_buffer=16M [WinMySQLadmin] Server=C:/mysql/bin/mysqld-nt.exe user=root password=%%% -------------------------------------------------------------------------------- 描述二: Can't connect to MySQL server on 'localhost' (10055) ( 2003 ) Can't connect to MySQL server on 'localhost' (10048) ( 2003 ) 我的系統是2003,我的MYSQL 一段時間就就會反覆出現上面的錯誤.... 重啟就好了,但過段時間問題又來了... 相關研究方向 描述三: 我的MYSQL最近老是出錯,提示'localhost' (10055) 錯誤!察看日誌,是這樣提示的: -------------------------------------------------------------------------------- MySql: ready for connections MySql: ready for connections Cannot initialize InnoDB as 'innodb_data_file_path' is not set. If you do not want to use transactional InnoDB tables, add a line skip-innodb to the [mysqld] section of init parameters in your my.cnf or my.ini. If you want to use InnoDB tables, add to the [mysqld] section, for example, innodb_data_file_path = ibdata1:10M:autoextend But to get good performance you should adjust for your hardware the InnoDB startup options listed in section 2 at http://www.innodb.com/ibman.html 050621 13:25:20 MySql: Normal shutdown 050621 13:25:20 MySql: Shutdown Complete MySql: ready for connections -------------------------------------------------------------------------------- 請問是什麼意思啊?而且每次出錯後,必須重啟動機器才可以好。如果只是重啟mysql服務,沒有用。 解決辦法參考(網上) 一: 我覺得可能是樓主的某些程式寫的有問題,可能佔用了串連而沒有斷開。另外,樓主的MYSQL伺服器是不是安裝有防火牆?特別是諾頓防火牆,我遇到過,明明是允許我的IP訪問被保護的伺服器,可是一段時間後,挪頓就認為我的IP是非法攻擊,自動就給我IP封了,要麼等20分鐘(預設的規則),要麼從新啟動伺服器就好了。。。。。。。 二:此條慎用,我更改後,威視總是出現伺服器內部錯誤 您使用的是Windows作業系統,此錯誤與一個註冊表索引值TcpTimedWaitDelay有關。減小Windows中TcpTimedWaitDelay時間可解決此類問題,預設情況下為240(未設定的情況下也是這個數值)。 此項設定需要到註冊表如下位置進行設定:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersTcpTimedWaitDelay 如果註冊表中沒有TcpTimedWaitDelay這個項目,請增加這個項目,並設定為雙位元組(DWORD)類型。數值設定為30 ~ 60 之間即可。 三: 伺服器ftp測試完畢,重新啟動了一下。就一切穩定了。 不過仍然有幾個問題沒有搞清楚。心裡不放心。 1。上周五的時候,ftp壓力並不大的時候,30分鐘線上統計900多人的時候,10%的比率出現mysql串連失敗的10048錯誤。 2。我當時使用的串連方法是 mysql_connect()。伺服器iis+php+isapi的方式。參考了一些資料以後,我當時馬上把 mysql_connect() 方法都改成了 mysql_pconnect() 方法,當時,問題看上去是解決了。 3。周六,伺服器開始ftp壓力測試。15%的比率出現 mysql串連失敗的 10048 10055 錯誤。比上次多了個10055錯誤。 關鍵不知道10048 10055錯誤碼具體代表的錯誤資訊。應該說,問題仍然沒有找到確切的答案。 我開了serv-u,有4個socket串連,mysql馬上掛了 資料採礦研究院 四: Can't connect to MySQL server on 'localhost' (10048) Can't connect to MySQL server on 'localhost' (10055) MySQL版本 4.0.13-nt 伺服器: windows2000 server + iis5.0 + php isapi + mysql 我用php+mysql開發了一個web站,該站訪問量很高。 但是正常運行了一個多星期以後,開始頻繁出現Can't connect to MySQL server on 'localhost' (10048) 錯誤。 統計資料如下: 嘗試失敗連結數 10,594 每小時總連結數 885.37 % 15.91 % 可以看出,串連失敗的比率非常高了。需要強調的是,一周之前,同樣的連結數,並沒有出現如此高的錯誤率。 原因分析:利用fport工具查看,你會發現有人在耗盡你的資料庫連接。而很明顯他們的特徵是:有數十個串連來自同一IP,而且都是time-waitk 解決方案:1。建議修改最大串連數,或者把 mysql_connect() 方法都改成了 mysql_pconnect() 方法, 2。治標,封鎖這些IP,一個IP串連大於3的就有點不正常,封 3。治本,修改網站程式,嚴禁重新整理太快! 補充說明:可以直接在防火牆封鎖外部串連本地的3306連接埠! |