MySQL 表不存在?但是,當我更改(應該)存在的 MySQL datadir 時,除了一個資料庫之外的所有資料庫都已成功移動。我可以連接並使用資料庫,SHOW TABLES 命令正確返回所有表,並且每個表的檔案都存在於 MySQL 資料目錄中。
但是當我嘗試從表中選擇某些內容時,我收到一條錯誤訊息,表示該表不存在。這是沒有意義的,因為我能夠使用 SHOW TABLES 語句顯示同一個表格。 我猜 SHOW TABLES 列出了檔案是否存在,但不檢查檔案是否已損壞。因此,儘管您可以列出這些文件,但無法存取它們。 然而,這只是猜測。我以前從未見過這樣的案例。我目前無法重新啟動資料庫並對其進行測試,但使用該資料庫的所有其他應用程式都正常運作。 有誰知道這種現象的原因嗎?範例:
解決方案:
直接使用下面的指令複製資料庫目錄同樣的問題可能如果你這樣做,就會發生。
當我在使用 InnoDB 表的資料庫上執行此操作時,我收到上面提到的奇怪的「表不存在」錯誤。
問題是我需要 MySQL datadir 根目錄下的 ib* 檔案(例如 ibdata1、ib_logfile0、ib_logfile1)。 我複製了這些文件,效果很好。以上是為什麼在 Datadir 更改後 MySQL 報告表不存在,儘管 SHOW TABLES 列出了該表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!