0

我有一个恢复光盘映像,其中包含mysql服务器 的数据文件

原始服务器不可用 - 我只有数据文件(程序数据、程序文件等)。

我无法制作mysqldump文件。

在新服务器上,我安装了 mysql 服务器的精确副本,并将文件/文件夹(所有myd myi文件)从磁盘映像复制到新服务器。

重启mysql服务后,可以在mysql管理员中看到我的数据库列表。

但是,当我尝试查看表时,出现错误:

“1146 表 {dbname}.{tablename} 不存在。”

我尝试运行myisamchk但这表示没有问题(至少没有显示错误)

任何人都可以帮忙吗?

鲍勃

4

1 回答 1

1

您将需要相应 .frm 文件的副本,其中包含 MySQL 从 .myd/.myi 或 ibdata 文件读取原始行数据所需的格式信息。如果没有 .frm 文件,MySQL 甚至不知道这些表应该存在(这就是为什么找不到它们,并且 myisamchk 没有看到任何损坏的表)。

如果您没有这些文件,您可能会遇到麻烦。您应该能够通过从头开始重新创建表来重建 .frm,然后停止服务器并将 .myd/.myis 删除到空版本上。但是您需要知道架构中最初使用的确切数据类型和索引。(“<a href="http://dev.mysql.com/doc/mysql-security-excerpt/5.1/en/repair.html" rel="nofollow noreferrer">很难修复”)

于 2009-08-31T12:56:19.563 回答