昨天公司突然停電,伺服器重啟時,myssql 1067 服務啟動不了。
花了整整一天的時間,終於把資料給挽救回來了。~立即發博,避免再出現受害人:
mysql正在做處理的時候,突然停電,異常中斷。
再啟動mysql服務的時候報錯,
--------------------------------
錯誤1067 進程意外中止
-------------------------------
晚上常規的修改my.ini 方法,不起作用。
這時間進入Data目錄下查看err記錄檔,當時日誌如下:
110102 11:43:19 [Note] mysqld: Shutdown complete
110102 11:45:37 [Note] Plugin 'FEDERATED' is disabled.
C:/Program Files/MySQL/MySQL Server 5.1/bin/mysqld: Table 'mysql.plugin' doesn't exist
110102 11:45:37 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
InnoDB: Error: log file ./ib_logfile0 is of different size 0 177209344 bytes
InnoDB: than specified in the .cnf file 0 5242880 bytes!
110102 11:45:37 [ERROR] Plugin 'InnoDB' init function returned error.
110102 11:45:37 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
110102 11:45:37 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
首先要解決的問題是 mysql.plugin 不存在的問題,需要檢查data目錄下是否存在mysql這個目錄,如果不存在,可以初始化mysql資料庫,或者手動建立mysql資料庫把備份的內容拷進來然後再啟動mysql服務,還是會出來錯誤1067,再仔細看看err日誌如下:
110102 11:43:19 [Note] mysqld: Shutdown complete
110102 11:45:37 [Note] Plugin 'FEDERATED' is disabled.
InnoDB: than specified in the .cnf file 0 5242880 bytes!
InnoDB: Error: log file ./ib_logfile0 is of different size 0 177209344 bytes
InnoDB: than specified in the .cnf file 0 5242880 bytes!
110102 11:45:37 [ERROR] Plugin 'InnoDB' init function returned error.
110102 11:45:37 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
110102 11:45:37 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
異常資訊變了,說明mysql.plugin已經找到了。但是ib_logfile 檔案和Data目錄下的ibdata1已經損壞,無法啟動。MYSQL服務
如果這時間有備份,用備份檔案覆蓋即可運行。
另:如果沒有備份,則需要刪除ib_logfile0 ,ib_logfile1,ibdata1 ,再啟動MYSQL就行了。
但是刪除ibdata1 ,資料庫表結構還在,但是表結構裡面的資料找查不到了。
找到系統目錄的MySQL Datafiles檔案夾,然後再修改my.ini設定檔,加上
#*** INNODB Specific options ***
innodb_data_home_dir="X:/MySQL Datafiles/"
再開啟資料庫,開啟表結構,資料都回來了吧!