0

我必须从 .myd 和 .frm 文件恢复 mysql 数据库。而且我不知道从哪里开始,我尝试在保留文件权限的同时将它们复制过来,但无济于事,我还需要采取哪些其他步骤?

我感觉它与 ib_logfile0、ib_logfile1 和 ib_data 文件有关。但不知道该怎么办。

4

1 回答 1

2

您不应该通过处理原始 MySQL 文件来进行备份。以这种方式最终得到一个损坏的数据库非常容易。考虑当您开始将文件复制到备份介质时会发生什么 - 复制将花费非零时间,在此期间,数据库可能会在各个地方写入新数据,包括您已经复制的部分。现在您正在复制修改过的文件,混合了旧数据和新数据。这个修改后的副本几乎可以保证被破坏。

您应该改用 mysqldump 或 mysqlhotcopy,这可以保证备份的一致性。

但是,如果您的数据库相对安静并且您设法获得了良好的干净备份副本,那么您需要恢复的文件取决于您要恢复的表的类型。InnoDB 将其所有数据存储在ib*文件中,无论数据库/表名称如何。MyISAM 使用根据数据库/表名称命名的目录中的文件。

将备份副本复制到正确位置后,您必须重新启动 MySQL,因为它仍将访问文件的原始副本。

于 2010-10-15T16:36:56.833 回答