Mysql

在 MariaDB 10 中恢復 MySQL 5.7 表

  • October 19, 2020

我做了一件非常愚蠢的事情……我沒有意識到安裝mariaDB會使用apt-get解除安裝MYSQL 5.7。(使用 Ubuntu 16.04)。

所以現在我正在嘗試恢復我的數據。

到目前為止,我已經閱讀了許多指南並嘗試了幾件事。我認為這讓我陷入了糟糕的境地,因為這些建議似乎是針對特定版本的。

我最成功的嘗試是 1) MaraiDB 的全新安裝。2) 將 * 文件從舊 sql 目錄複製到新目錄。3) 將數據庫目錄 myDatabase/ 從舊 sql 目錄複製到新目錄。3) 執行 mysql_secure_installation 4) 配置我的使用者等。

除了我無法執行 sql 查詢之外,這有效。

SELECT * FROM myDatabase.tableOne;

我得到:

SQL Error [1932] [42S02]: (conn:56) Table 'myDatabase.tableOne' doesn't exist in engine

或者

SQL Error [1146] [42S02]: (conn:56) Table 'myDatabase.tableTwos' 

似乎所有表格都給出了這兩個錯誤之一。

到目前為止,我已經讀到 mysqlcheck 可以解決這個問題。

如果我跑

/var/lib/mysql$ mysqlcheck myDatabase
myDatabase.tableOne
Error    : Table 'myDatabase.tableOne' doesn't exist in engine
status   : Operation failed

我找不到任何建議的解決方案來解決這個問題。雖然也許我從一開始就走錯了路。謝謝你的幫助。

在做任何其他事情之前,我建議您備份舊的 mysql 數據目錄和 /etc 上的配置文件。因此,如果出現問題,您不會失去數據。

然後我會檢查您安裝了哪些特定的 MariaDB 版本。根據MariaDB 兼容性圖表,您需要 MariaDB 10.2 才能從 MySQL 5.7 遷移。一旦你確定你安裝了正確的版本,你應該參考遷移文件:

https://mariadb.com/kb/en/library/migrating-to-mariadb/

或者,您可以解除安裝 MariaDB 並再次安裝 MySQL,只需檢查您是否安裝了可用的最新 5.7 版本。為此,您可以從mysql 下載中下載 deb 包並手動安裝或設置 mysql 儲存庫:https ://dev.mysql.com/downloads/repo/apt/

錯誤顯示,您正在使用舊的 ibdata 文件。我建議,解除安裝 mariadb 並重新安裝 mysql。然後進行健康備份。

並重新安裝 mariadb 並恢復備份數據。

引用自:https://dba.stackexchange.com/questions/217963