改变MySQL少表这些文件的参与和为什么?
-
05-07-2019 - |
题
当改变的内容少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
对于每个这些文件:
- 当是创建的文件?
- 当将该文件被写?
- 当将该文件可读?
- 会是什么后果,如果该文件被损坏或被删除?
解决方案
/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
文件至另一个数据库?
不隶属于 StackOverflow