Windows 更新失敗後如何還原 Windows 上的 MySQL 資料庫

Windows 更新失敗後如何還原 Windows 上的 MySQL 資料庫

我有一個用 Java Spring 開發的系統,它將資料儲存在 Windows 10 本地運行的 MySQL 資料庫上。

昨天,我運行了最新的Windows更新,經過2個小時的磨練,我的電腦崩潰了…從那時起,Windows就不想啟動了,並給了我重新安裝Windows的選項,並可以保留我的個人資料。但是,我認為它會刪除 MySQL 和儲存的所有資料。

我在同一台機器上運行 Linux,因此我嘗試使用 Linux 存取資料庫,以便使用 mysqldump 備份它。

為了做到這一點,我嘗試使用以下命令將Windows上保存資料的目錄掛載到linux目錄:

sudo mount --bind '/media/guillaume/Windows/ProgramData/MySQL/MySQL Server 5.7/Data' /var/lib/mysql

然後我重新啟動 mysql 伺服器並開啟 SQL 控制台。我可以使用 Windows 密碼(與 Linux 上的 SQL 密碼不同)登入 SQL 控制台,並且可以列出 Windows 電腦上儲存的所有資料庫。

當事情變得更加複雜時。 SQL控制台可以列出資料庫中我感興趣的所有表,但由於某種原因,它無法查詢表的內容。我可以列出所有表,但無法查詢這些表。 SQL 告訴我這樣的表格不存在,儘管它剛剛列出了它。

我有這個的螢幕截圖,沒有錯字,但該網站不允許我發布圖像...

我該如何解決這個問題?或者是否有更聰明的方法來從 Windows 位置建立轉儲,即使 Windows 沒有啟動?

感謝您的幫助 !

答案1

它不起作用的原因是我已將 Windows 中的資料庫重命名為“database_W”,以便將其與 Linux 中具有相同名稱的其他資料庫區分開來,並且我已從我執行的備份中恢復了 2幾週前。

我已將 Windows ProgramData 檔案複製到外部磁碟,因此我將資料庫的備份複製到我的目標資料夾中,然後 SQL 控制台以及我的 IDE 可以看到這個原始資料庫、其所有資料表和所有資料。我使用 IDE 建立了一個備份檔 (dump)。

正如 Rinzwind 指出的那樣,定期備份資料至關重要,尤其是在 Windows 更新之前...吸取教訓!

所以我恢復資料的方法是:

  1. 使用linux存取windows數據,並備份所有數據
  2. 要恢復 SQL 數據,您對以下位置感興趣:'/media/guillaume/Windows/ProgramData/MySQL/MySQL Server 5.7/Data'。不要更改其中的任何名稱!
  3. 使用下列命令將 Windows ProgramData 檔案掛載到對應的 Linux 目錄:sudo mount --bind '/media/guillaume/Windows/ProgramData/MySQL/MySQL Server 5.7/Data' /var/lib/mysql
  4. 重新啟動你的sql服務(我使用這個指令:service mysql restart)
  5. 檢查 Linux 終端機中的 SQL 控制台是否可以從 Linux 看到 Windows 資料庫並且可以存取資料(使用 select * from table 類型的語句);
  6. 使用 IDE 連接到此資料庫(使用 Windows 憑證),以便從 IDE 建立轉儲檔案。

相關內容