博客
关于我
数据库无法启动 通过.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/

    你可能感兴趣的文章
    php 解决项目中多个自动加载冲突问题
    查看>>
    PHP 设置调试工具XDebug PHPStorm IDE
    查看>>
    php 身份证号检测
    查看>>
    PHP 输入输出流合集
    查看>>
    PHP 过滤器(Filter)
    查看>>
    php 运算符and or && || 的详解
    查看>>
    php 返回html字符串长度限制,记一次js中和php中的字符串长度计算截取的终极问题和完美...
    查看>>
    php 阿里云oss 上传回调
    查看>>
    PHP 面向对象 final类与final方法
    查看>>
    php+JQ+EasyUI自动加载数据
    查看>>
    php+sql server根据自增序号id区间查询第几条到第几条的数据
    查看>>
    php--------获取当前时间、时间戳
    查看>>
    php--正则表达式
    查看>>
    php--防止sql注入的方法
    查看>>
    PHP-CGI Windows平台远程代码执行漏洞复现(CVE-2024-4577)
    查看>>
    php-cgi耗尽报502错误
    查看>>
    php-cgi(fpm-cgi) 进程 CPU 100% 与 file_get_content...
    查看>>
    PHP-DI/Invoker 开源项目使用教程
    查看>>
    php-fpm与Nginx运行常见错误说明
    查看>>
    php-fpm比php成为apache模块好在哪
    查看>>