![](/img/trans.png)
[英]#1932 - Table 'xxx.xxxx' doesn't exist in engine, change php mysql xampp version
[英]Xampp-mysql - "Table doesn't exist in engine" #1932
我遇到了同樣的問題並使用以下步驟進行排序。
C:\xampp\mysql\bin\my.ini
)innodb_data_file_path = ibdata1:10M:autoextend
C:/xampp/mysql/data/
下是否存在ibdata1
文件C:\xampp\mysql\backup\ibdata1
復制ibdata1
文件希望它對某人有所幫助。
將ib_logfileXX和ibdata文件從舊的 mysql/data 文件夾復制到新的 mysql 數據文件夾,它將解決問題
如果您已將文件從舊備份文件夾復制並粘貼到新文件夾,那么它很簡單。 只需將舊的ibdata1
復制到新的 ibdata1 中即可。 你可以從\xampp\mysql\data
找到它並重啟你的mysql。
ibdata1
文件當我從備份文件夾中取出所有文件時,這發生在我身上。 有一個文件夾不應與其他文件夾和文件一起復制,稱為ibdata1
。
我也遇到過同樣的問題,但是復制xampp\mysql\data\ibdata1
並沒有解決我的問題,因為我安裝了新版本的 xampp,如果您首先升級 xampp,請從所有htdocs
和mysql
文件夾中進行備份,在我的情況下,我只是備份將所有 xampp 復制到新文件夾(如old-xampp
,然后安裝新的 xampp,然后您需要在啟動新的 xampp 服務器之前執行以下步驟:
xampp\mysql\data
的新安裝中備份phpmyadmin
文件夾和ibdata1
。old-xampp\mysql\data
並從舊位置復制ibdata1
文件和phpmyadmin
。xampp\mysql\data
並將它們過去。好的,第一步,您可以從舊的 xampp xampp\mysql\data\ibdata1 復制,然后第二步粘貼到您的 xampp new xampp\mysql\data\ibdata1 ,然后打開您的xampp控制器並停止mysql並重新開始。
我試過了,對我有用
我之前移動了我的 mysql 目錄並忘記更改對 \mysql\bin\my.ini 中舊位置的所有引用。
更改這三行:
datadir = "/programs/xampp/mysql/data"
innodb_data_home_dir = "/programs/xampp/mysql/data"
innodb_log_group_home_dir = "/programs/xampp/mysql/data"
將“/programs/xampp/mysql/data”更改為新位置,此位置已被評論,但我還是更改了它
#innodb_log_arch_dir = "/programs/xampp/mysql/data"
你可以:
解決問題后,從數據庫中獲取輸出功率
backups
文件夾的內容復制到data
文件夾中。 這對我有用。我的mac上也有同樣的問題。 我正在運行 5.3.0 版本。 我刪除了該版本並安裝了 7.2.1 版本。 在此之后,它適用於我的情況。
我遇到過同樣的問題。 我備份了我的C:\xampp\mysql\data
文件夾。 但是將它與新安裝的xampp
集成有問題。 所以我找到了C:\xampp\mysql\bin\my.ini
文件並將innodb_data_home_dir = "C:/xampp/mysql/data"
定向到我備份的數據文件夾,它完美地工作。
上述解決方案都不適合我。 將舊的 mysql/data 目錄粘貼到新的 xampp 后,檢查 ibdata1 是否具有當前用戶所需的所有權限,否則嘗試授予權限。 然后你的phpmyadmin中的“空會話數據”解決了我的問題。
C:\xampp\mysql\data
C:\xampp\mysql\backup 4.粘貼並替換到
C:\xampp\mysql\data
Ubuntu用戶使用說明:
復制數據庫(例如從外部磁盤備份)。
sudo cp -r /media/some_user/mysql/some_database/ /opt/lampp/var/mysql/
注意:從現在開始,數據庫已經出現在 PHPMyAdmin 中,但是如果你點擊它,表格仍然沒有出現
將所有者更改為mysql
(因為復制所有者時它已更改為root
)
sudo chown -R mysql:mysql some_database/
注意:從這一刻起,表的名稱出現,但您看不到它們的結構或數據 - 它顯示錯誤“#1932 - 表 'some_database.some_table' 在引擎中不存在”
復制ibdata1
文件並更改所有者。
sudo mv ibdata1 ibdata1_old
sudo cp /media/some_user/mysql/ibdata1 /opt/lampp/var/mysql/
sudo chown -R mysql:mysql ibdata1
重啟XAMPP
sudo /opt/lampp/lampp restart
我在https://stackoverflow.com/a/66804621找到了以下答案很有幫助
如果您只是將數據庫從一個文件夾移動到另一個文件夾,但您的 InnoDB 表不再工作,因為無法找到它們並顯示錯誤消息“引擎中不存在表”,那么這對 SQL陳述可以盡可能快地提供幫助:
ALTER TABLE __yourtable_name__ DISCARD TABLESPACE ;
ALTER TABLE __yourtable_name__ IMPORT TABLESPACE ;
在實踐中,將.IDB文件從.FRM文件中分離出來,然后重新綁定,使表格內容變為可讀。
它適用於我的情況。 也希望你的。
對我來說,我從xampp\mysql\
中刪除了整個data
文件夾(並進行了備份),並在此處粘貼了前一個data
文件夾,這解決了我的問題...
如果您已經嘗試了上述所有答案但仍然失敗,請首先嘗試通過運行此命令來修復您的數據庫,
mysqlcheck --repair my_db_name -u root -p
然后如果問題得到解決,
如果未修復並且您有表的備份並且無法將其導入 PHPMyAdmin,請執行以下操作。
1.進入xampp\mysql\data\database_folder
2. 刪除以您的表名開頭的文件(擴展名為 .frm 和 .ibd)。 例如:my_table.frm、my_table.ibd
3. 導入您的表格
它對我有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.