【问题标题】:Recovering MySQl database from .frm, ibdata and ib_logfile从 .frm、ibdata 和 ib_logfile 恢复 MySQl 数据库
【发布时间】:2011-01-04 13:28:07
【问题描述】:

我有以前版本的 MySQl 中的 .frm、ibdata 和 ib_logfile,现在我要切换到更新的版本。不幸的是,我没有安装以前的版本,所以我无法将转储文件导入新的 MySQl 版本。

请提出一些方法让这些数据库在较新的 MySQL 版本中运行。我拥有上一个 MSQl 中的所有必需文件。

【问题讨论】:

  • 如果您只有 InnoDB 表,我相信 Emil 的建议会奏效。对于 MyISAM 表,您需要每个表的 .frm、.myi 和 .myd 文件。

标签: mysql recover


【解决方案1】:

这样做真的很危险,所以只需在文件副本上执行(并尽量使用完全相同版本的 MySQL):

  • 确保 MySQL 服务未运行
  • 删除 ib_logfile(不需要)
  • 将文件放在 MySQL 数据目录中
  • 启动服务器并检查日志文件。
  • 检查一切是否正常。

【讨论】:

  • 这不起作用。虽然它可以识别数据目录中的数据库和表,但它无法读取这些表中的数据。当我尝试使用 sql 查询从表中读取一些信息时出现此错误:ERROR 1033 (HY000): Incorrect information in file: '.\db_name\table_name.frm'
【解决方案2】:

好吧,这似乎微不足道。但是因为我已经保存了我之前安装的 Program Files 中存在的整个 MySQL 文件夹。我发现我仍然可以使用该文件夹来运行以前的 MySQL 安装,而无需进行任何更改或重新安装(似乎 MySQl 像 Linux 软件一样工作)。现在我正在使用 mysqldump 创建转储,然后将其导入新的 MySQL 版本。

【讨论】:

    猜你喜欢
    • 2012-08-18
    • 1970-01-01
    • 2022-07-23
    • 2012-06-11
    • 2010-11-15
    • 1970-01-01
    • 2023-03-05
    • 2019-01-30
    • 2010-10-27
    相关资源
    最近更新 更多