首頁 > 資料庫 > mysql教程 > 為什麼在 Datadir 更改後 MySQL 報告表不存在,儘管 SHOW TABLES 列出了該表?

為什麼在 Datadir 更改後 MySQL 報告表不存在,儘管 SHOW TABLES 列出了該表?

Linda Hamilton
發布: 2024-12-06 10:36:12
原創
1022 人瀏覽過

Why Does MySQL Report a Table as Non-Existent After Datadir Change, Even Though SHOW TABLES Lists It?

MySQL 表不存在?但是,當我更改(應該)存在的 MySQL datadir 時,除了一個資料庫之外的所有資料庫都已成功移動。我可以連接並使用資料庫,SHOW TABLES 命令正確返回所有表,並且每​​個表的檔案都存在於 MySQL 資料目錄中。

但是當我嘗試從表中選擇某些內容時,我收到一條錯誤訊息,表示該表不存在。這是沒有意義的,因為我能夠使用 SHOW TABLES 語句顯示同一個表格。

我猜 SHOW TABLES 列出了檔案是否存在,但不檢查檔案是否已損壞。因此,儘管您可以列出這些文件,但無法存取它們。

然而,這只是猜測。我以前從未見過這樣的案例。我目前無法重新啟動資料庫並對其進行測試,但使用該資料庫的所有其他應用程式都正常運作。

有誰知道這種現象的原因嗎?

範例:

解決方案:

直接使用下面的指令複製資料庫目錄同樣的問題可能如果你這樣做,就會發生。

當我在使用 InnoDB 表的資料庫上執行此操作時,我收到上面提到的奇怪的「表不存在」錯誤。

問題是我需要 MySQL datadir 根目錄下的 ib* 檔案(例如 ibdata1、ib_logfile0、ib_logfile1)。

我複製了這些文件,效果很好。

以上是為什麼在 Datadir 更改後 MySQL 報告表不存在,儘管 SHOW TABLES 列出了該表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板