簡體   English   中英

Xampp-mysql - “引擎中不存在表”#1932

[英]Xampp-mysql - "Table doesn't exist in engine" #1932

移動 xampp 文件夾后出現 Xampp 錯誤:

在此處輸入圖像描述

Apache 運行良好:

在此處輸入圖像描述

如下圖所示,我成功運行了 apache 但無法運行 mysql 如果我移動並運行 xampp apache 和 mysql 但它顯示的錯誤是新鮮的並且它顯示錯誤如“表在引擎中不存在” #1932 作為放棄圖像。 請解決這個問題有人幫助請

我遇到了同樣的問題並使用以下步驟進行排序。

  1. 轉到 MySQL 配置文件(我的文件在C:\xampp\mysql\bin\my.ini
  2. 檢查行innodb_data_file_path = ibdata1:10M:autoextend
  3. 接下來檢查C:/xampp/mysql/data/下是否存在ibdata1文件
  4. 如果文件不存在,則從位置C:\xampp\mysql\backup\ibdata1復制ibdata1文件

希望它對某人有所幫助。

ib_logfileXXibdata文件從舊的 mysql/data 文件夾復制到新的 mysql 數據文件夾,它將解決問題

如果您已將文件從舊備份文件夾復制並粘貼到新文件夾,那么它很簡單。 只需將舊的ibdata1復制到新的 ibdata1 中即可。 你可以從\xampp\mysql\data找到它並重啟你的mysql。

不要復制ibdata1文件

當我從備份文件夾中取出所有文件時,這發生在我身上。 有一個文件夾不應與其他文件夾和文件一起復制,稱為ibdata1

  1. 停止mysql
  2. 將 xampp\mysql\data\ib* 從舊服務器復制到新服務器
  3. 啟動mysql

我也遇到過同樣的問題,但是復制xampp\mysql\data\ibdata1並沒有解決我的問題,因為我安裝了新版本的 xampp,如果您首先升級 xampp,請從所有htdocsmysql文件夾中進行備份,在我的情況下,我只是備份將所有 xampp 復制到新文件夾(如old-xampp ,然后安裝新的 xampp,然后您需要在啟動新的 xampp 服務器之前執行以下步驟:

  1. 從這個位置xampp\mysql\data的新安裝中備份phpmyadmin文件夾和ibdata1
  2. 然后轉到您的舊 xampp 文件夾old-xampp\mysql\data並從舊位置復制ibdata1文件和phpmyadmin
  3. 然后打開新的 xampp 文件夾xampp\mysql\data並將它們過去。
  4. 啟動 xampp 服務器。

好的,第一步,您可以從舊的 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"

你可以:

  1. 將數據文件夾重命名為data-old
  2. 創建新文件夾並將名稱設置為數據
  3. 復制數據文件夾中的備份文件夾
  4. 將 data-old 中的ibdata1復制到數據文件夾
  5. 重啟MySQL 和 Apache

解決問題后,從數據庫中獲取輸出功率

  • backups文件夾的內容復制到data文件夾中。 這對我有用。
  • 在此之后,您必須重新配置現有數據庫的 innodb 文件

我的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中的“空會話數據”解決了我的問題。

100% 工作解決方案

  1. 停止 MySQL 和 Apache 並退出 Xampp
  2. 備份“數據”文件夾。

C:\xampp\mysql\data

  1. 復制此文件夾中的所有文件

C:\xampp\mysql\backup 4.粘貼並替換到

C:\xampp\mysql\data

Ubuntu用戶使用說明:

  1. 復制數據庫(例如從外部磁盤備份)。

    sudo cp -r /media/some_user/mysql/some_database/ /opt/lampp/var/mysql/

注意:從現在開始,數據庫已經出現在 PHPMyAdmin 中,但是如果你點擊它,表格仍然沒有出現

  1. 將所有者更改為mysql (因為復制所有者時它已更改為root

    sudo chown -R mysql:mysql some_database/

注意:從這一刻起,表的名稱出現,但您看不到它們的結構或數據 - 它顯示錯誤“#1932 - 表 'some_database.some_table' 在引擎中不存在”

  1. 復制ibdata1文件並更改所有者。

    sudo mv ibdata1 ibdata1_old

    sudo cp /media/some_user/mysql/ibdata1 /opt/lampp/var/mysql/

    sudo chown -R mysql:mysql ibdata1

  2. 重啟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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM