最近在Windows 2003上的MySQL出現過多次正常運行時無法串連資料庫故障,現象是無法串連資料庫,也無法停止MySQL或重啟MYSQL,重啟機子也沒有效果,由於每次都是草草嘗試各種方法搞定即可,一直沒有深入研究,下次一定把圖和故障現象系統歸納一下。本文先列一下常見的解決方案。
一、確認MYSQL已經配置且正確
重新設定
如果是重新安裝的MYSQL,請確認安裝後的MYSQL經過第一次配置,否則會缺少my.ini檔案,配置方法,可以在安裝到最後一步時選擇,現在開始配置MYSQL,或在程式組中運行MYSQL設定精靈。配置完成後,要確保my.ini檔案中[mysqld]欄位下至少有basedir安裝目錄路徑和datadir資料庫路徑。
配置之前,如果原來已經有過MySQL配置,可以先在MYSQL嚮導中進行執行一次REMOVE INSTANCE,然後再重新設定。
覆蓋資料表
預設的MYSQL資料庫會安裝到My Document下,所以如果您的資料庫目錄在其它路徑下,可以先把MYSQL停止掉,然後把資料庫剪下到其它路徑,然後拷貝相關資料表進入同一目錄即可。
如果MYSQL資料表使用不同的賬戶,還需要在MYSQL建立賬戶,或直接使用原來的MYSQL資料表覆蓋(需確認之前的MSYQL資料表是未損壞的)。
解決無法啟動
遇到無法啟動MYSQL時常見解決方案:
A、先使用命令C:\Program files\mysql\bin\mysqladmin-u root -p shutdown來關閉MYSQL
B、再在cmd命令列下,執行net start mysql啟動mysql。
二、1067錯誤常見解決方案
故障現象
如果在停止MYSQL(net stop mysql)或啟動MYSQL時,出現1067錯誤,錯誤資訊“MySql 服務正在停止...系統出錯(A system error has occurred.)...系統發生 1067 錯誤(System error 1067 has occurred.),進程意外終止(The process terminated unexpectedly.)”等。
常見解決方案
如果以前一直運行OK的,請先按照上面的“無法啟動”解決方案執行一次看看。
如果進行過Remove Instance操作,再次重建時後,一定要檢查my.ini檔案中的datadir是否已被還原了,如果該地址下資料庫不存在,也將報告1067錯誤,只需要修改成真實的資料庫目錄地址,然後手動啟動即可。
檢查MYSQL目錄許可權
檢查my.ini檔案中[mysqld]欄位下是否有basedir安裝目錄路徑和datadir資料庫路徑,my.ini可能需要出現在兩個地方,MYSQL的安裝目錄和Windows目錄(假設是windows環境)下,都要檢查一下。
有時候刪除%windir%/my.ini檔案然後再重新設定也可以解決,再次配置後檢查一下Windir目錄下是否有my.ini檔案,有時把安裝目錄下最新的my.ini拷貝過去覆蓋一下也能解決問題。
如果是Linux環境,試一下把mysql.server拷貝至/etc/rc.d/init.d/下,然後再運行chkconfig mysql.server,之後就可以在命令列中設定PATH、使用命令執行mysql啟動。
三、非法關機造成的MYSQL無法啟動問題
如果是因為非法關機等原因導致MYSQL無法啟動或啟動有問題的,最好使用重新安裝的或確認是OK的MYSQL資料表及ibdata1、mysql.pid、ib_logfile0等檔案進行覆蓋,天緣試過遇到過多次這種情況,就是原來的MYSQL表有問題了,總是無法啟動,但是更換成新表就可以。
四、重裝MYSQL
發現MYSQL有問題時,最便捷的方法,是先把mysql卸載掉,然後重裝重新設定,具體方法如下:
1、卸載MYSQL,清理掉安裝目錄和Windows目錄下的my.ini檔案。
2、檢查工作管理員中是否還有mysql進程,如果有,可以把mysqld.exe殺掉,或者先殺掉再卸載也可以。
3、在cmd命令視窗,執行:sc delete mysql,該命令是清理註冊服務命令。
3. 重裝 mysql
如果是安全設定以後出現這個問題,可能是因為mysql以低許可權啟動並執行時候因為密碼原則等問題導致,大家看惡意將mysql的啟動使用者更下下密碼,然後在服務項裡設定下即可。
如
注意:先到windows管理器中修改下密碼