当改变的内容少MySQL表以下文件系统上的文件似乎是参与/发生改变:

  • /path/to/mysql/data/[database]/[table].ibd (由于 innodb_file_per_table)
  • /path/to/mysql/data/data/ib_logfile0
  • /path/to/mysql/data/data/ib_logfile1
  • /path/to/mysql/data/data/ibdata1

对于每个这些文件:

  1. 当是创建的文件?
  2. 当将该文件被写?
  3. 当将该文件可读?
  4. 会是什么后果,如果该文件被损坏或被删除?
有帮助吗?

解决方案

/path/to/mysql/data/[database]/[table].ibd (due to innodb_file_per_table)

这是你的数据存储。它们创建时的创建表。

/path/to/mysql/data/data/ib_logfile0
/path/to/mysql/data/data/ib_logfile1

这些都是 logfiles.

所有的数据更改写入 logfiles 顺序,其中允许提前写入记录(关于交易)

/path/to/mysql/data/data/ibdata1

这里是系统数据和 UNDO 数据存储。

如果 ibdata 是找不到 MySQL 会认为 InnoDB 发动机是不是初始化和创造新的 ibdata.同 logfiles.

如果查询颁发表, .ibd 文件不是发现, MySQL 将失败,该信息:

无法找到表 database/table 从内部数据词典 InnoDB 虽然 .frm 文件表的存在。也许你已经删除,并重新创建的 InnoDB 数据文件,但已经忘记了删除相应的 .frm 文件的 InnoDB 表,或你 已经转移 .frm 文件至另一个数据库?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top