【问题标题】:MySQL tables gone after deleting ibdata1删除 ibdata1 后 MySQL 表消失
【发布时间】:2013-11-14 05:40:20
【问题描述】:

几天前,经过一番谷歌搜索后,我无法再运行 mysql(xampp)了:XAMPP - MySQL shutdown unexpectedly

它说要删除我所做的 ibdata1 文件,mysql 再次启动但一个数据库的表已经消失,但是我仍然可以看到包含数据文件夹中值的表(ibd 和 frm 文件)无论如何我可以恢复那些表吗?

谢谢。

【问题讨论】:

  • 我想问一下...您希望名为data 的文件实际包含什么? :-|
  • 阅读这个:stackoverflow.com/questions/2222583/… 但是你真的删除了 ibdata1 文件还是只是重命名了它?

标签: mysql innodb data-recovery


【解决方案1】:

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

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

如果您删除了 ibdata1,并且您一直以 file-per-table 格式存储表数据,则有时可以恢复,但这是一个细致的过程。以下是一些参考资料:

还原最近的备份并在最近的备份之后创建use the binary log to play back changes 会更简单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-11
    • 2016-09-22
    • 2017-02-16
    • 2012-08-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多