提问人:Yagya Bashyal 提问时间:8/4/2016 最后编辑:ShadowYagya Bashyal 更新时间:10/31/2023 访问量:361126
Xampp-mysql - “引擎中不存在表” #1932
Xampp-mysql - "Table doesn't exist in engine" #1932
问:
移动 xampp 文件夹后出现 Xampp 错误:
Apache运行良好:
如下图所示,我成功运行Apache,但无法运行MySQL,如果我移动并运行Apache和MySQL的xampp,但它显示的错误是新鲜的,它显示错误,如“引擎中不存在表”#1932作为放弃的图像。请解决任何问题,请任何人帮助
答:
- 将文件夹的内容复制到文件夹中。这对我有用。
backups
data
- 在此之后,您必须重新配置现有数据库的 innodb 文件
评论
我遇到了同样的问题,并使用以下步骤进行了排序。
- 转到MySQL配置文件(我的文件在
C:\xampp\mysql\bin\my.ini
) - 检查线路
innodb_data_file_path = ibdata1:10M:autoextend
- 接下来检查文件是否存在
ibdata1
C:/xampp/mysql/data/
- 如果文件不存在,请从以下位置复制文件
ibdata1
C:\xampp\mysql\backup\ibdata1
希望它对某人有所帮助。
评论
将 ib_logfileXX 和 ibdata 文件从旧的 mysql/data 文件夹复制到新的 mysql 数据文件夹,它将解决此问题
评论
- 停止 MySQL
- 将 xampp\mysql\data\ib* 从旧服务器复制到新服务器
- 启动 MySQL
我有同样的问题。我有文件夹的备份。但是将其与新安装的集成存在问题。因此,我找到了该文件并定向到我备份的数据文件夹,它运行良好。C:\xampp\mysql\data
xampp
C:\xampp\mysql\bin\my.ini
innodb_data_home_dir = "C:/xampp/mysql/data"
我遇到了同样的问题,但复制并没有解决我的问题,因为我安装了新版本的 xampp,如果您首先升级 xampp 从 all 和文件夹进行备份,就我而言,我只是将所有 xampp 备份到新文件夹,然后安装新的 xampp,然后您需要在启动新的 xampp 服务器之前执行以下步骤: xampp\mysql\data\ibdata1
htdocs
mysql
old-xampp
- 备份文件夹,然后从此位置备份新安装。
phpmyadmin
ibdata1
xampp\mysql\data
- 然后转到旧的 xampp 文件夹并从旧位置复制文件。
old-xampp\mysql\data
ibdata1
phpmyadmin
- 然后打开新的 xampp 文件夹并将它们粘贴到那里。
xampp\mysql\data
- 启动 xampp 服务器。
对我来说,我从中移除了整个文件夹(并进行了备份),并在此处粘贴了前一个文件夹,这解决了我的问题......data
xampp\mysql\
data
评论
如果您已将文件从旧备份文件夹复制并粘贴到新文件夹,那么它很简单。
只需将旧的复制到新的中即可。你可以从并重新启动你的mysql中找到它。ibdata1
\xampp\mysql\data
我之前移动了我的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"
评论
上述解决方案都不适合我。将旧的 mysql/data 目录粘贴到新的 xampp 后,检查 ibdata1 是否具有当前用户所需的所有权限,否则尝试授予权限。然后phpmyadmin中的“空会话数据”解决了我的问题。
好的,第一步您可以从旧的 xampp xampp\mysql\data\ibdata1 复制,然后将第二步粘贴到您的 xampp 新 xampp\mysql\data\ibdata1 中, 然后打开XAMPP控制器并停止MySQL并重新启动。
我试过这个,对我有用
不复制文件ibdata1
当我从备份文件夹中获取所有文件时,我遇到了这种情况。有一个文件不应与其他文件夹和文件一起复制,称为 ibdata1
。
评论
ib_logfile1
ib_logfile0
.info
如果您已经尝试了上述所有答案但都失败了,请首先尝试通过运行以下命令来修复您的数据库,
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. 导入表格
它对我有用。
您可以:
- 将数据文件夹重命名为 data-old
- 创建新文件夹并将名称设置为数据
- 将备份文件夹复制到数据文件夹中
- 将 data-old 中的 ibdata1 复制到 data 文件夹
- 重新启动MySQL 和 Apache
解决问题后,从数据库中获取输出功率
评论
100%工作解决方案
- 停止 MySQL 和 Apache 并退出 Xampp。
- 备份“data”文件夹。
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 文件,然后再次绑定,使表格内容变为可读。
它在我的情况下有效。希望你也是。
请尝试以下步骤
- 停止MySQL和Apache服务器
- 复制备份文件夹
- 将数据库文件夹从数据文件夹复制到备份复制文件夹
- 从备份副本文件夹中删除 IBData1
- 将 IBData1 从数据文件夹复制到备份副本文件夹
- 删除数据文件夹
- 将备份复制文件夹重命名为数据文件夹
- 重新启动 XAMPP 服务器
如果您已经尝试了上述所有可能的解决方案,但仍然无法解决,您可以尝试以下方法:
仅当您之前进行过备份时
为此,请考虑:
- 数据库名称为 dbnm
- 引发错误的表是 tbnm
- 转到 backup/dbnm/ 文件夹。
- 复制 tbnm.ibd 和 tbnm.frm 文件。
- 转到mysql/bin/data/dbnm/
- 粘贴复制的文件,并替换原始文件。 看看它是否有效!!
从旧的 XAMPP 复制,然后
从那里复制
然后粘贴到你的 xampp new 中,
和xampp\mysql\data\ibdata1
theNameOfdatabase
xampp\mysql\data\theNameOfdatabase
xampp\mysql\data\ibdata1
xampp\mysql\data\theNameOfdatabase
然后打开XAMPP控制器并停止MySQL并重新启动。
基本上,您正在替换 IBData1 和 从旧的 XAMMP 复制数据库文件
评论