• MySQL 数据恢复


    首先针对修复过程中产生的问题进行再修复:

    1、通过 alter table expresspackage discard tablespace; 解除表结构文件 expresspackage.frm 和表数据文件 expresspackage.ibd 的绑定,会直接删除 data 文件夹下的 expresspackage.ibd 文件,这时候数据库重启数据库会一直失败,所以在此期间不能重启,除非一直重启保持短暂连接进行操作,解决方法:

          1,1、再删除表结构文件,可以彻底删除这个表,就可以避免重启失败:drop table expresspackage;

      Tips:数据库文件损坏,很可能是某一张表有问题,一般就是操作表,可以先尝试备份删除这张表,看看MySQL是否能正常启动

          1.2、再关联一个表数据文件,可以完善表文件,就可以避免重启失败:alter table expresspackage import tablespace;

          1.3、Tips:如果复制进来的表数据文件在data文件夹下,但是没有关联成功,也会产生这个问题,需要先手动删除表数据文件

    通过 ibd 文件进行数据恢复教程:

    1、通过 alter table expresspackage discard tablespace; 解除表结构文件 expresspackage.frm 和表数据文件 expresspackage.ibd 的绑定

    2、将需要恢复的 expresspackage.ibd 文件拷贝到 data 文件夹下

    3、通过 alter table expresspackage import tablespace; 关联表结构文件

    4、

    4、完成,可通过 navicat 查看数据了

    二、整个数据库恢复(需要数据库结构一致,否则可能丢失现有数据)

    参考文档:https://www.cnblogs.com/sky-cheng/p/12214208.html

    以新建数据库接收恢复数据为例

    1、新建数据库服务MySQL2,此时是空数据库,执行初始化,然后停止服务

    2、将损坏数据库的data文件夹下的数据库文件夹和ibdata1文件拷贝到MySQL2的data文件夹下,覆盖ibdata1文件

    3、如果遇到无法copy的文件,选择跳过,说明此文件是损坏文件

    4、重启MySQL2,DOS界面进入数据库,执行drop table 删除此前发现的损坏表,再重启MySQL2,能正常启动

    5、MySQL2已接收MySQL中指定数据库的所有正常表

  • 相关阅读:
    MYSQL 优化指南
    设计模式——依赖倒置原则实例(PHP实现)
    PHP开发笔记
    反射应用
    HMAC-SHA1算法签名及Authorization头认证
    PHP接口和抽象类的区别
    PHP 模板方法模式使用
    RSA JS 加密解密DEMO
    RSA加密解密(PHP Demo)
    【Spark调优】提交job资源参数调优
  • 原文地址:https://www.cnblogs.com/wa502/p/15120051.html
Copyright © 2020-2023  润新知