mysql数据库恢复(Stellar Repair for MySQL:解决-MySQL错误 #1932- 表在引擎中不存在-)

mysql数据库恢复(Stellar Repair for MySQL:解决-MySQL错误 #1932- 表在引擎中不存在-)
Stellar Repair for MySQL:解决"MySQL错误 #1932: 表在引擎中不存在"

天津鸿萌科贸发展有限公司从事数据安全服务二十余年,致力于为各领域客户提供专业的数据恢复、数据备份、数据取证、数据迁移、网络安全、数据销毁等解决方案,并针对企业面临的数据安全风险,提供专业的相关数据安全培训。

天津鸿萌科贸发展有限公司是 Stellar 系列国际主流数据恢复软件的授权经销商。

概要

本文介绍了什么是 “MySQL错误 #1932:表在引擎中不存在” 以及如何解决它。该错误可能由于服务器配置设置损坏、权限问题等原因而发生。如果 MySQL 数据库表存在损坏,可以使用 Stellar Repair for MySQL 工具进行修复——这是一款专业的 MySQL 修复工具,可以修复在 InnoDB 和 MyISAM 两种存储引擎中创建的损坏表。

在 MySQL 数据库中,用户可以使用表执行各种操作。例如,将数据加载到表中,或者通过设置主键和外键来创建关系。在对表执行任何操作时,如果 MySQL 服务器无法访问该表、其表空间及其元数据,则用户可能会遇到不同的错误。例如,MySQL错误 #1932:表在引擎中不存在。本文中,我们将探讨此错误、它在不同场景下的发生情况以及如何解决它。

关于 MySQL 错误 #1932:表在引擎中不存在

在使用 XAMPP 服务器上的 PhpMyAdmin 或 MySQL Workbench 时,可能会遇到 MySQL 错误1932:表在引擎中不存在。这个错误可能出现在基于 Web 的应用程序和独立的桌面应用程序中。此错误通常出现在以下场景:

  • 使用 mysqldump 工具或 SQL 数据导出和导入向导创建备份时。
  • 将旧文件复制到新安装的 XAMPP 服务器后。
  • 在 PhpMyAdmin 中使用 ALTER TABLE 命令修改数据库时。
  • 尝试从 MySQL 数据库中的表检索数据时。

MySQL 服务器中错误 1932 的原因是什么?

存储引擎可能由于以下任何原因无法读取或访问数据库中的表:

  • 数据库中的表已损坏
  • 缺少表文件(.frm)或InnoDB数据库文件(.ibd文件)的位置不同
  • InnoDB表空间可能已被删除并重新创建,但数据库目录中InnoDB表的相应.frm文件未被移除,或者.frm文件被移动到另一个数据库
  • MySQL/MariaDB数据目录中表文件的权限和所有权设置不正确

解决 MySQL 错误 #1932 表在引擎中不存在的方法

有时,如果用户尝试访问或打开的表在数据目录中不存在,则会发生此错误。在这种情况下,可以检查 PhpMyAdmin 数据目录以查看它是否存在(见下图)。

如果相关表存在于数据目录中,那么您可以遵循以下故障排除方法。

mysql数据库恢复(Stellar Repair for MySQL:解决-MySQL错误 #1932- 表在引擎中不存在-)

方法1:复制日志文件以及MySQL数据库

将旧 MySQL 数据库的备份复制到新的 XAMPP 服务器后,可能会遇到 MySQL错误 #1932。如果遇到这种情况,一个解决方法是复制以下文件(以ib开头)以及数据库:

注意:这些文件可能已存在于新的数据文件夹中,因此请先删除已存在的文件


接下来,重新启动 XAMPP 服务器。

方法2:检查并修改 PhpMyAdmin 配置文件

有时,当此错误发生时,可以看到 PMA 表的名称。例如,1932 - Table 'phpmyadmin.pma__tracking' doesn't exist in engine。当 XAMPP 服务器(PhpMyAdmin)无法访问存储配置设置的 PMA 表时,就会发生这种情况。不正确的配置设置以及 PMA 表缺失或损坏可能是其原因。如果为 MySQL 配置的用户受密码保护或缺少必要的权限,也会发生这种情况。要解决此问题,请按照以下步骤操作:

  • 转到 PhpMyAdmin 配置文件。要找到此文件,需要打开 XAMPP 控制面板。点击 Apache 或 MySQL的Config 选项。选择 phpMyAdmin(config.inc.php)。

  • 将显示配置设置列表。

  • 在列表中,检查与 pma 相关的表。如果它们缺失,则通过复制并替换config.inc.php的以下内容来重新创建:

同时,向下滚动并检查"Authentication type"和"info"部分。在此处检查并确保用户拥有访问MySQL数据库的所有权限。否则,授予所需的权限。

方法3:检查并修复 MySQL 表

MySQL 数据库中的表损坏也是导致 MySQL 错误 #1932:表在引擎中不存在的主要原因之一。要验证这一点,可以在 PhpMyAdmin 中运行CHECK TABLE命令。以下是需要遵循的步骤:

  • 在phpMyAdmin仪表板中,点击主菜单中的Databases选项卡。这将打开MySQL数据库列表。
  • 点击您无法从中打开表的数据库。
  • 将出现一个表列表,点击Doctor表并选择CHECK TABLE。

在Workbench中,运行 CHECK TABLE 命令,如下所示:

上图显示名为appointments的表已损坏或其表空间缺失。您可以使用PhpMyAdmin修复MySQL数据库。但是,它有一些限制,例如:

  • 它有文件大小限制。
  • 一次只允许修复单个数据库。
  • 功能有限,例如没有模式可视化和自动编译选项。
  • 不提供可修复数据的预览。
  • 上传大型数据库文件时可能出现超时问题。
  • 它可能无法修复InnoDB表。

要修复 MySQL 中的 InnoDB 表,可以使用 Stellar Repair for MySQL。这是一个易于使用的工具,可以修复在 InnoDB 和 MyISAM 存储引擎中创建的损坏的 MySQL 数据库。该工具甚至可以毫无问题或数据丢失地修复大型数据库文件。它还可以一次修复多个数据库,可以恢复严重损坏的日志文件、.frm文件和.ibd文件。如果 “MySQL错误 #1932:表在引擎中不存在”是由于 MySQL 表损坏引起的,它可以帮助您解决问题。

结论

本文中,我们介绍了什么是 “MySQL错误 #1932:表在引擎中不存在”以及如何解决它。它可能由于服务器配置设置损坏、权限问题等原因而发生。如果 MySQL 数据库表存在损坏,请使用 Stellar Repair for MySQL——这是一款专业的MySQL修复工具,可以修复在 InnoDB 和 MyISAM 两种存储引擎中创建的损坏表。

文章版权声明:除非注明,否则均为边学边练网络文章,版权归原作者所有