如何恢复 MySQL 数据库:文件中的信息不正确:“./xxx.frm”

发布于 2024-08-22 17:27:13 字数 1729 浏览 8 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

子栖 2024-08-29 17:27:13

这属于服务器故障。

首先,.FRM 文件不包含任何“数据”。它们只是表的定义。

如果以下条件全部成立:

  • 该表正在使用 MyISAM 存储引擎
  • 您知道重新创建该表所需的 CREATE TABLE 语句

然后,执行以下操作:

  1. 停止 MySQL
  2. 备份您的 table_name.frm、table_name.MYI、table_name.MYD 文件
  3. 从 mysql 数据目录(通常为 /var/lib/mysql)中删除它们
  4. 启动 MySQL
  5. 再次创建表
  6. 停止 MySQL
  7. 复制 .​​MYD 和 .MYD 文件。 MYI 文件放回到 datadir 中,替换那里的文件。
  8. 启动MySQL
  9. ???
  10. 利润

This belongs on serverfault.

First, .FRM files contain none of your "data". They are simply the definition of the table.

If all of the following are true:

  • The table is using the MyISAM storage engine
  • You know the CREATE TABLE statement required to recreate the table

Then, do the following:

  1. Stop MySQL
  2. Backup your table_name.frm, table_name.MYI, table_name.MYD files
  3. Delete them from your mysql data directory (/var/lib/mysql usually)
  4. Start MySQL
  5. CREATE the table again
  6. Stop MySQL
  7. Copy the .MYD and .MYI files back into the datadir, replacing the ones there.
  8. Start MySQL
  9. ???
  10. Profit
_蜘蛛 2024-08-29 17:27:13

我遇到了类似的问题,事实证明 MySQL InnoDB 引擎已关闭(我可以通过 phpMyAdmin 检查,bash 专业人士可以告诉你如何以其他方式做到这一点)。就我而言,这就像重新启动 MySQL 一样简单,但您可能需要检查您的配置是否有更改。

I had a similar issue, it turns out the MySQL InnoDB engine was turned off (I was able to check via phpMyAdmin, a bash pro could tell you how to do it other ways). in my case, it was a simple as restarting MySQL, but you may want to check your config if something changed there.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文