mysql遷移報錯

將mysql目錄直接拷貝遷移,過程不詳述,數據庫正常啓動,但是不能正常使用,select查表報表不存在,然後發現日誌報錯如下

InnoDB: Doing recovery: scanned up to log sequence number 265335480935

170504 15:56:39  InnoDB: Error: page 311313 log sequence number 265338125392

InnoDB: is in the future! Current system log sequence number 265335480935.

InnoDB: Your database may be corrupt or you may have copied the InnoDB

InnoDB: tablespace but not the InnoDB log files


解決辦法:

在/etc/my.cnf文件的[mysqld]下添加

innodb_force_recovery = 4


重啓mysqld恢復正常,問題解決,記得之後將“innodb_force_recovery = 4”刪掉再重啓一次,否則還會出現問題


關於innodb_force_recovery的一些說明

innodb_force_recovery可以設置爲1-6,大的數字包含前面所有數字的影響。

  1. (SRV_FORCE_IGNORE_CORRUPT):忽略檢查到的corrupt頁。

  2. (SRV_FORCE_NO_BACKGROUND):阻止主線程的運行,如主線程需要執行full purge操作,會導致crash。

  3. (SRV_FORCE_NO_TRX_UNDO):不執行事務回滾操作。

  4. (SRV_FORCE_NO_IBUF_MERGE):不執行插入緩衝的合併操作。

  5. (SRV_FORCE_NO_UNDO_LOG_SCAN):不查看重做日誌,InnoDB存儲引擎會將未提交的事務視爲已提交。

  6. (SRV_FORCE_NO_LOG_REDO):不執行前滾的操作。



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