• 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中指定数据库的所有正常表

  • 相关阅读:
    tomcat的systemctl启动脚本
    vmware中虚拟化的问题
    zabbix-3.4.14源码安装
    tomcat启动后8005端口未被占用
    Centos7初始化脚本
    CentOS7.3上如何安装Apache/2.4.34
    js完整教程一 : 基本概念和数组操作
    浅入浅出Lambda表达式
    这些基础却重要的面向对象概念,你还记得多少
    MVC5+EF6 入门完整教程11--细说MVC中仓储模式的应用
  • 原文地址:https://www.cnblogs.com/wa502/p/15120051.html
Copyright © 2020-2023  润新知