zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    模块和包专区
    递归函数,三级菜单专区
    内置函数和匿名函数专区
    迭代器和生成器专区
    函数进阶专区
    初始函数专区
    题解 P6282 【[USACO20OPEN]Cereal S】
    题解 P6281 【[USACO20OPEN]Social Distancing S】
    题解 P6281 【[USACO20OPEN]Social Distancing S】
    第5题:棋盘
  • 原文地址:https://www.cnblogs.com/dreamhome/p/7646641.html
Copyright © 2011-2022 走看看