当前位置: 首页 > 知识库问答 >
问题:

删除ibdata1后MySQL表消失

黄君博
2023-03-14

几天前,我无法让mysql运行了(xampp),经过一些谷歌搜索,我发现了这篇文章:xampp-MySQL意外关机

它说删除ibdata1文件,我做了,mysql再次启动,但一个数据库的表不见了,但我仍然可以看到数据文件夹中包含值的表(ibd和frm文件),我可以恢复这些表吗?

共有1个答案

子车安和
2023-03-14

ibdata1文件很重要,通常不应该删除它,除非您希望删除所有的InnoDB数据并从一个空的MySQL实例重新开始。

即使使用innodb_file_per_table=1并且所有表都存储在.ibd文件中,ibdata1文件仍然包含数据字典,它基本上类似于InnoDB表空间的全局目录。这是InnoDB如何知道您有哪些表以及它们驻留在哪些文件中。ibdata1文件还可以包括回滚段和更改缓冲区中的重要数据,这些数据最终将合并到表中,但这可能需要时间。

如果您已经删除了ibdata1,并且一直在以每个表的文件格式存储表数据,有时可以恢复,但这是一个细致的过程。以下是一些参考资料:

    null

更简单的方法是还原最近的备份,然后使用二进制日志回放在最近的备份之后所做的更改。

 类似资料:
  • 问题内容: 范围:两个表。创建新的顾客时,他们会将有关他们的一些信息存储到第二张表中(这也使用触发器完成,它可以按预期工作)。这是我的表结构和关系的示例。 表1-> 顾客 表2-> patron_info 管理员可以管理顾客。当他们选择移走顾客时,将顾客从 桌子1 移开。此时, 表2 没有任何反应。 我只是想创建一个触发器,以便在表1的项目已删除时从表2中删除。这是我尝试过的… 最初,我尝试删除触

  • 主要内容:基本语法,删除表的实例在MySQL 数据库中,对于不再需要的数据表,我们可以将其从数据库中删除。 在删除表的同时,表的结构和表中所有的数据都会被删除,因此在删除数据表之前最好先备份,以免造成无法挽回的损失。 下面我们来了解一下 MySQL 数据库中数据表的删除方法。 基本语法 使用 DROP TABLE 语句可以删除一个或多个数据表,语法格式如下: DROP TABLE [IF EXISTS] 表名1 [ ,表名2,

  • 前面章节介绍了前面小节介绍了如何新建表、设计表、修改表结构,本小节介绍如何删除数据表。 1.删除数据表 删除数据表的命令如下: DROP TABLE new_student; 我们使用这条命令将 item_name 数据库中的 new_student数据表删除掉,执行结果如下图: 2. 小结 本小节介绍了如何删除数据表,需要注意的是实际业务过程中,如果需要删除数据表一定要谨慎,删除数据表之前最

  • 问题内容: 我将localhost中的MySQL用作在R中执行统计信息的“查询工具”,也就是说,每次运行R脚本时,我都会创建一个新的数据库(A),创建一个新的表(B),然后将数据导入B ,提交查询以获取所需信息,然后删除B并删除A。 对于我来说,它工作正常,但是我意识到ibdata文件的大小正在迅速增加,我没有在MySQL中存储任何内容,但是ibdata1文件已超过100 MB。 我在设置中使用了

  • 大家好,所以我有这个MYSQl代码,我插入日期,当它发送和输入的日子,可以是从1做7。我怎样才能让MYSQl在输入天之后删除一行?例如:我在2021年22.03.2021下午3:54创建了一个产品,输入的过期天数是6天。我想删除产品后正好6天。