• mysql ibd 文件还原数据


    -- 这里要还原的表名为 test_table
    
    -- 1建库,并选中库,库名随意
    
    -- 2查看InnoDB 引擎独立表空间是否开启
    SHOW VARIABLES LIKE '%per_table%'
    ;
    
    -- 3设置InnoDB 引擎独立表空间开启,这样data目录下新建的表都会有对应的.ibd数据文件
    SET GLOBAL innodb_file_per_table=1
    ;
    
    
    -- 4建表
    CREATE TABLE `test_table` (
      `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
      `openid` VARCHAR(28) DEFAULT NULL,
      `prize_id` INT(11) DEFAULT '0' COMMENT '奖品id,默认0未中奖',
      `prize_name` VARCHAR(100) DEFAULT NULL COMMENT '奖品名称',
      `type_id` TINYINT(4) DEFAULT '0' COMMENT '类别默认0',
      `username` VARCHAR(50) DEFAULT NULL COMMENT '用户名',
      `phone` VARCHAR(15) DEFAULT NULL COMMENT '手机号',
      `province` VARCHAR(50) DEFAULT NULL COMMENT '',
      `city` VARCHAR(100) DEFAULT NULL COMMENT '',
      `address` VARCHAR(255) DEFAULT NULL COMMENT '详细地址',
      `add_time` INT(11) DEFAULT NULL COMMENT '添加时间',
      `update_time` INT(11) DEFAULT NULL COMMENT '更新时间',
      PRIMARY KEY (`id`)
    ) ENGINE=INNODB DEFAULT CHARSET=utf8
    ;
    -- 5 使当前ibd 的数据文件和frm 分离
    ALTER TABLE test_table DISCARD TABLESPACE
    ;
    -- 6将备份的ibd文件覆盖当前表的ibd
    
    -- 7 加载关联新ibd文件
    ALTER TABLE test_table IMPORT TABLESPACE
    -- 这一步可能报错,查看错误日志,本地设置的是.err文件
    -- InnoDB: Error: tablespace id and flags in file './data/test_table.ibd' are 2170 and 0, but in the InnoDB
    -- InnoDB: data dictionary they are 1 and 0.
    -- 原因是,服务器上的表空间ID 为2170 本地新建的表空间ID为1,所以导致这个错误发生,解决办法是:让他们的表空间ID一致,即在本地不断的创建删除 test_table 表。
    ;
    -- 可在程序里循环执行如下两句,直到本地和线上数据库上该表的表空间ID一致
    -- CREATE TABLE test_table (id INT) ENGINE=INNODB
    -- DROP TABLE `test_table`
    -- 最后删除表后重新从第4步开始执行
    
    
    -- 8查看表数据,如果报错则找到my.ini文件
    -- 查找有无innodb_force_recovery这一属性,如果没有则在最下一行添加 innodb_force_recovery=1 还报错的话就修改值2,3,4,5等,直到可以正确查看表数据为止
    
    -- 9 可以查看表后立即导出sql文件,再把my.ini文件中innodb_force_recovery属性值改回默认的0,或注释掉(默认值也是0)
  • 相关阅读:
    [SHOI2014]信号增幅仪
    [SDOI2016]征途
    Luogu P3226 [HNOI2012]集合选数
    Comet OJ C1076 [Contest #4]求和
    Luogu P2657 [SCOI2009]windy数
    Luogu P1864 [NOI2009]二叉查找树
    UVA10559 Blocks
    Luogu P1880 [NOI1995]石子合并
    简单DP
    CF1097F Alex and a TV Show
  • 原文地址:https://www.cnblogs.com/dreamhome/p/7646641.html
Copyright © 2020-2023  润新知