本文目錄一覽:
mysql 數據庫無法啟動
故障處理
移除當前使用的 redo log 文件,然後可以試着啟動數據庫,結果啟動失敗!
提示:
[ERROR] InnoDB: Page [page id: space=0, page number=0] log sequence number 178377412422 is in the future! Current system log sequence number 165909011496.
這樣的錯誤,這是因為 MySQL writer 線程按照配置的時間間隔以 page 為單位刷新 buffer 數據到磁盤。當數據刷新到磁盤的時候,新寫入磁盤的 page 包含了較新的 LSN,此時系統 system 表空間頭的 LSN 並沒有同步更新,通常這是檢查點線程的工作。在正常的崩潰恢復中,MySQL 可以藉助 redo log 來進行前滾和回滾,但是此時 redo log 已經被我們刪掉了,MySQL 無法進行恢復操作。此時,我們設置 innodb_force_recovery=3 來強制啟動 MySQL,仍然啟動不成功,改成 4 後啟動了!
再使用 mysqldump 導出備份,結果噩夢又降臨了!MySQL 又 crash 了。
提示:
InnDB: Failed to find tablespace for table……
設置參數 innodb_force_recovery=5,數據庫仍然啟動失敗,再設置成 6,啟動成功!用 sqldump 順利把數據備份出來了!
再初始化數據庫,把剛剛備份的數據庫導入,數據庫恢復成功完成!
參數說明
這裡的關鍵是設置 innodb_force_recovery 參數,對應這個參數的說明如下:
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:不執行前滾的操作。
mysql無法啟動
故障處理
移除當前使用的 redo log 文件,然後可以試着啟動數據庫,結果啟動失敗!
提示:
[ERROR] InnoDB: Page [page id: space=0, page number=0] log sequence number 178377412422 is in the future! Current system log sequence number 165909011496.
這樣的錯誤,這是因為 MySQL writer 線程按照配置的時間間隔以 page 為單位刷新 buffer 數據到磁盤。當數據刷新到磁盤的時候,新寫入磁盤的 page 包含了較新的 LSN,此時系統 system 表空間頭的 LSN 並沒有同步更新,通常這是檢查點線程的工作。在正常的崩潰恢復中,MySQL 可以藉助 redo log 來進行前滾和回滾,但是此時 redo log 已經被我們刪掉了,MySQL 無法進行恢復操作。此時,我們設置 innodb_force_recovery=3 來強制啟動 MySQL,仍然啟動不成功,改成 4 後啟動了!
再使用 mysqldump 導出備份,結果噩夢又降臨了!MySQL 又 crash 了。
提示:
InnDB: Failed to find tablespace for table……
設置參數 innodb_force_recovery=5,數據庫仍然啟動失敗,再設置成 6,啟動成功!用 sqldump 順利把數據備份出來了!
再初始化數據庫,把剛剛備份的數據庫導入,數據庫恢復成功完成!
參數說明
這裡的關鍵是設置 innodb_force_recovery 參數,對應這個參數的說明如下:
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:不執行前滾的操作。
mysql5數據庫服務無法啟動
你是不是安裝過mysql的其它版本?如果是,要卸載,而且卸載之前要先停止系統進程里的mysql服務,再重啟,再安裝新的版本才行。
目前給你提供一點解決辦法供參考
1。打開系統服務進程:右擊我的電腦-管理-服務和應用程序-服務,找到mysql,包括老版本和新版本的,右擊,全部停用
2。卸載已經安裝的MySQL4.1
3。重啟,手動全部刪除舊的安裝文件夾,尤其是windows\my.ini
4。再去看看服務進程里有沒有mysql,如果有,右擊-屬性-啟動類型-禁用
5。安裝新的版本,最好改變安裝路徑。等到出現選擇啟動win服務的下拉框時候,選41的那個就應該能成功了。
mysql 服務無法啟動
這個問題出現在MySQL5.7之後的版本,主要的原因是MySQL會在最新的check point完成後都會在redolog寫一個一字節的MLOG_CHECKPOINT標記,用來標記在此之前的redo都已checkpoint完成。
如果處於任何原因沒有找到這個標記,那麼整個redolog文件都會被忽略。出現這個錯誤的話,最好是有備份進行恢復,如果沒有做好備份,那隻能採取非常規的啟動方式,但可能造成數據丟失。
介紹
MySQL是一個關係型數據庫管理系統,由瑞典MySQLAB公司開發,屬於Oracle旗下產品。MySQL是最流行的關係型數據庫管理系統之一,在WEB應用方面,MySQL是最好的RDBMS應用軟件之一。
MySQL是一種關係型數據庫管理系統,關係數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度並提高了靈活性。
mysql啟動不了數據庫服務
windows下:
1.
打開命令行窗口(cmd),如果安裝的mysql服務名為mysql,則net
start
mysql(此步也可直接在控制面板-管理-服務中啟動mysql)
2.
輸入命令進入到mysql的安裝目錄中的bin目錄內,如安裝目錄為c:\program
files\mysql,則輸入命令cd
c:\program
files\mysql\bin;
3.
使用命令啟動mysql服務,如用戶名為root密碼為123456,則命令mysql
-u
root
-p
123456;如果登錄成功,則說明mysql服務啟動成功。
linux下:
1.
直接在命令行窗口中service
mysql
start(假設服務名稱為mysql);
2.
然後按windows下的第2和第3步進行同樣驗證;
原創文章,作者:JALTR,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/316063.html