1. 程式人生 > >Mysql 資料遷移後 啟動出錯

Mysql 資料遷移後 啟動出錯

今天上班後不知道為什麼,mysql一直無法啟動,折騰了半天於是決定重灌

我本地的伺服器用的是wamp , 重灌的時候, 要進行資料備份 , 我使用的最簡單粗暴的備份方式, 就是直接進入到mysql的安裝目錄下, 把data拷貝一份就可以了.


然後解除安裝wamp後重裝,資料遷移就是把data貼到相同位置替換下就ok了

但是今天遷移完後,mysql怎麼也啟動不了,檢視log,顯示各種錯誤

2014-11-13 13:40:29 5196 [Note] Plugin 'FEDERATED' is disabled.
2014-11-13 13:40:29 5196 [Note] InnoDB: The InnoDB memory heap is disabled
2014-11-13 13:40:29 5196 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions
2014-11-13 13:40:29 5196 [Note] InnoDB: Compressed tables use zlib 1.2.3
2014-11-13 13:40:29 5196 [Note] InnoDB: Not using CPU crc32 instructions
2014-11-13 13:40:29 16e4  InnoDB: Error: unable to create temporary file; errno: 2
2014-11-13 13:40:29 5196 [ERROR] Plugin 'InnoDB' init function returned error.
2014-11-13 13:40:29 5196 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2014-11-13 13:40:29 5196 [ERROR] Unknown/unsupported storage engine: InnoDB
2014-11-13 13:40:29 5196 [ERROR] Aborting

檢視各種資料後, 又有了粗獷的方式,刪除了data目錄下的除資料庫資料夾以及ibdata1之外的檔案, 再重啟, ok了, 小綠圖標出來了,mysql正常啟動了。

*注意: 一定不要刪除ibdata1, 查了資料, 說這個是很重要的檔案,儲存著innodb相關的資料

當然,身為妹子的博主,自然有自己細心的一面, 為什麼刪除了其他檔案就可以啟動呢?



並且,在遷移過程中,妹紙做了各種測試.

1.僅替換data內的資料庫資料夾,重啟後mysql可以啟動,但用navicat連線資料庫後無法開啟資料表,顯示資料表不存在  (即資料丟失, 上述ibdata1相關)

2.將事先備份的data內的資料庫資料夾以及ibdata1替換到data目錄下,重啟, mysql無法啟動

3.將ib_logfile0以及ib_logfile1刪除, 重啟 , mysql啟動正常, 連線資料庫資料表資訊恢復.

大致搞懂了這三部分檔案的用途, 具體原因, 還待深究 , 日後補文.