Data-Recovery

從數據文件中恢復 InnoDB

  • October 26, 2019

首先,我的 MySQL DB 和 Linux 技能不太好。我花了幾天時間尋找解決方案並嘗試了幾種方法。以下方法是我用得最遠的一種。

我安裝 MariaDB 的 SD 卡已損壞。但是,我能夠恢復 /var/lib/mysql 目錄。

我設置了一個新的 Ubuntu 安裝和一個乾淨的 MySQL 數據庫。在我將恢復的數據庫目錄複製到新文件夾(沒有 ibdata)並重新啟動數據庫後,我可以看到這些表,但收到錯誤“1146 表不存在”。

然後我還複製了文件 ibdata 並更改了權限(chmod、chown、chgrp)。但在那之後我不能再啟動 MySQL 服務了。我收到以下錯誤:

$$ Note $$InnoDB:如果 mysqld 執行使用者被授權,可以更改頁面清理執行緒優先級。請參閱 setpriority() 的手冊頁。 $$ ERROR $$InnoDB:無法以只讀模式創建日誌文件 $$ ERROR $$InnoDB:外掛初始化因錯誤只讀事務而中止 $$ ERROR $$外掛“InnoDB”初始化函式返回錯誤。 $$ ERROR $$外掛“InnoDB”註冊為儲存引擎失敗。 $$ ERROR $$無法初始化內置外掛。 $$ ERROR $$中止 我試過 innodb_force_recovery 0-6 沒有成功。

有沒有人提示我錯誤的含義以及如何恢復我的數據庫?

看來您的 MySQL 目錄處於只讀模式:[ERROR] InnoDB: Cannot create log files in read-only mode. 確保對目錄和其中的文件具有寫權限。

也就是說,如果您的 SD 卡出現故障,則數據本身很可能已損壞而無法修復。

引用自:https://serverfault.com/questions/989494