博客
关于我
数据库无法启动 通过.frm.ibd文件恢复数据
阅读量:466 次
发布时间:2019-03-06

本文共 1121 字,大约阅读时间需要 3 分钟。

MySQL 数据库恢复指南

在处理 MySQL 数据库问题时,确保数据库文件的安全备份是关键。以下是数据库恢复的详细步骤,帮助你快速解决问题。

获取表结构

创建新表

首先,你需要创建一个与原表结构相同的新表。确保新表的字段数和类型与原表一致。可以通过以下命令创建新表:

CREATE TABLE book LIKE original_book;

关闭数据库服务

在操作数据库文件之前,务必关闭数据库服务,以防止文件被锁定或修改。

service mysql stop

复制和覆盖文件

将备份的 book.frm 文件复制到新表的文件位置,并覆盖原文件:

cp /path/to/book.frm /var/lib/mysql/

修改数据库配置文件

在恢复完成后,重启数据库服务前,请确保数据库配置文件 /etc/mysql/my.cnf 中设置为:

innodb_force_recovery = 6

启动数据库服务

启动数据库服务,以验证表结构是否正确:

service mysql start

验证表结构

进入MySQL,使用以下命令查看表结构:

DESCRIBE book;

恢复数据

重启数据库服务

重启数据库服务,确保所有表格和索引重新加载:

service mysql restart

执行数据恢复

使用以下命令恢复表的数据和索引:

ALTER TABLE book DISCARD TABLESPACE;

复制和权限设置

将备份的 book.ibd 文件复制到数据库目录,并设置适当的权限:

cp /path/to/book.ibd /var/lib/mysql/
chown mysql:mysql book.ibd

导入数据

使用以下命令将数据恢复到表中:

ALTER TABLE book IMPORT TABLESPACE;

查看恢复结果

最终,使用以下命令验证表数据是否恢复:

SELECT * FROM book;

注意事项

  • 错误处理

    在执行 ALTER TABLE book DISCARD TABLESPACE; 时,可能会出现以下错误:

    ERROR 1015 (HY000): Can't lock file (errno: 165 - Table is read only)

    请确保已将 innodb_force_recovery 设置为 0,然后重启数据库服务。

  • 文件权限

    在恢复 book.ibd 文件之前,请确保文件权限设置为:

    chown mysql:mysql book.ibd
  • 通过以上步骤,你可以成功恢复MySQL数据库的表结构和数据。如果遇到其他问题,请参考MySQL官方文档或联系技术支持。

    转载地址:http://gpabz.baihongyu.com/

    你可能感兴趣的文章
    Python 中只有一个 True 和一个 False 对象吗?
    查看>>
    Python 中多线程与多处理之间的区别
    查看>>
    Python 中如何使用 lambda 函数
    查看>>
    Python 中如何创建多行字符串?
    查看>>
    Python 中如何处理异常?
    查看>>
    Python 之匿名函数和偏函数
    查看>>
    python 之栈的实现
    查看>>
    Python 交互式数据可视化详解
    查看>>
    python语言有哪些优点和缺点_Python有哪些优缺点,你了解吗?
    查看>>
    Python 从入门到精通:30天速成教程到底有多狠?你能坚持下来吗?
    查看>>
    Python 从数据库中存储和检索密码的最安全方法
    查看>>
    Python语言及其应用 - 知识点遍历
    查看>>
    Python 优化提速的 8 个小技巧
    查看>>
    Python 余弦相似度与皮尔逊相关系数 计算
    查看>>
    python 使用execjs 报编码错误解决办法,UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xac in position 145: il
    查看>>
    python 使用filetype校验文件
    查看>>
    Python 使用flush函数将缓冲区数据立即写磁盘
    查看>>
    python 使用in判断不准确,in不好使
    查看>>
    Python 使用pandas 进行查询和统计详解
    查看>>
    Redis 配置文件redis.conf详细解释
    查看>>