在 MariaDB 10 中恢復 MySQL 5.7 表
我做了一件非常愚蠢的事情……我沒有意識到安裝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 並恢復備份數據。