从以前的系统复制 mysql 文件现在连接时出错,该怎么办?

从以前的系统复制 mysql 文件现在连接时出错,该怎么办?

首先,我有这些文件,但旧系统已经消失了。

我将这些文件夹放入其中/var/lib/mysql/,然后授予其中的 mysql 文件夹所拥有的权限。用户 mysql 组 root 只能访问我的用户。

现在,当我想访问本地主机站点时,我收到 mysql 数据库错误。但我想,一切还是和以前一样。我需要做什么才能使这项工作成功?

Cannot find or open table blabla/wp_options from
the internal data dictionary of InnoDB though the .frm file for the
table exists. Maybe you have deleted and recreated InnoDB data
files but have forgotten to delete the corresponding .frm files
of InnoDB tables, or you have moved .frm files to another database?
or, the table contains indexes that this version of the engine
doesn't support.
See http://dev.mysql.com/doc/refman/5.5/en/innodb-troubleshooting.html
how you can resolve the problem.

日志文件向我显示了很多这样的错误。我现在应该删除这个 .frm 文件吗?

答案1

迂腐:是的;您将需要删除这些.frm文件,因为如果没有任何文件,ibdata它们就没有地方了。

引用14.2.4.7。 InnoDB 数据字典操作故障排除“这意味着 InnoDB 中有一个孤立的 .frm 文件,没有相应的表。”

因此,.frm没有 a 的文件InnoDB是孤立的.frm.


但正如我的评论链接所给出的:14.2.2.4。备份和恢复InnoDB数据库14.2.1.2。配置InnoDB结合给定的弗罗姆它们链接的格式。

/var/lib/mysql/我以为你也复制了里面的文件——我的错。

除其他事项外,日志文件还包含仅提交到内存的提交 –不归档正如所解释的这里, - 因此,这一切都取决于数据库上次关闭的方式。


很高兴问题得到解决;)

答案2

事实证明我没有复制实际的数据库。我查看了文件夹中的所有内容,其中包含带有表名的 .frm 文件和 65 位 db.opt 文件,所以我知道这不可能是实际的数据库。

它们都位于 /var/lib/mysql/ 根目录下的 ibdata1 文件内,我想,我认为数据库位于具有我之前创建的数据库名称的文件夹内。

所以不,我不需要删除任何 .frm 文件或任何东西。我复制了 ibdata1 文件(同时停止了 mysql 服务器),现在一切正常。

相关内容