首页 > 数据库 >mysql 被删除如何恢复

mysql 被删除如何恢复

时间:2024-01-18 20:37:10浏览次数:27  
标签:table1 删除 恢复 ibd ------- mysql data 目录


恢复ibd 使用

  1. ------- On Debian/Ubuntu/Linux Mint -------
  2. $ sudo apt-get install testdisk
  3. ------- On CentOS/RHEL/Fedora -------
  4. $ sudo yum install testdisk
  5. ------- On Fedora 22+ -------
  6. $ sudo dnf install testdisk
  7. ------- On Arch Linux -------
  8. $ pacman -S testdisk
  9. ------- On Gentoo -------
  10. $ emerge testdisk

sudo photorec /dev/sda3




ibd2sdi --dump-file=./abc.txt table_xxx.ibd #解析table_xxx.ibd表结构



背景:因为机器损坏,数据库的索引文件什么的都损坏了。只留下了一个mysql的data目录…

此方法恢复数据的前提:建表用的innodb索引   备注:如果mysql的目录还都在,可以先尝试,将mysql下的目录都拷贝到一个新mysql目录下,启动看看能不能用,不能用后再尝试下面方法   mysql会有一个data目录存储表结构和表数据。下面的目录结构大概如下: ib_logfile0 ib_logfile1 ibdata1 ibtmp1 xx数据库1 xx数据库2   每个数据库目录下面的表内容如下: 表1.frm 表1.ibd 表2.frm 表2.ibd .frm文件:表结构文件 .ibd文件:表数据文件  

下面为恢复数据方法

备注:这里假设要备注的库名为db1,表名为table1

1、先备份要恢复数据的表文件

table1.frm和table1.ibd文件   可以直接把原数据库的data目录整个拷贝过来,如果指定了data目录可以通过查看mysql的进程看到具体配置位置

2、新搭建一个mysql

我用的5.7,搭建在mac本地

3、将mysql下的log文件删除,不要保留和要备份的库相同的内容

如果你是完全新建的一个数据库,和原来的库表完全无关,可以忽略这步骤   rm -rf /usr/local/mysql/data/ib_logfile0 rm -rf /usr/local/mysql/data/ib_logfile1 rm -rf /usr/local/mysql/data/ibdata1 rm -rf /usr/local/mysql/data/btmp1 rm -rf /usr/local/mysql/data/db1

4、新建数据库

链接上mysql命令行 create database db1;  

5、通过命令行新建原来的表,

注意,一定在建表命令后加【ROW_FORMAT=COMPACT】防止冲突

例如:
1 2 3 4 5 6 7 DROP TABLE IF EXISTS `table1`; CREATE TABLE `table1` (   `namevarchar(200) NOT NULL DEFAULT '' COMMENT 'key值',   `value` varchar(500) DEFAULT NULL COMMENT 'value值',   `descvarchar(500) DEFAULT NULL COMMENT '关于当前key的描述信息',   PRIMARY KEY (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;

 

  如果不记得表结构了,可以先参考下面的文章找回表结构,dump出sql结构后获得创建表的语句: http://blog.sina.com.cn/s/blog_5d3da3280100hymn.html

6、将新建的表DISCARD掉

命令行执行:
ALTER TABLE table1 DISCARD TABLESPACE;

7、将备份的源表数据文件.ibd拷贝过来

将.ibd文件放到新数据库的data目录下,覆盖刚创建表时新生成的.ibd文件   即/usr/local/mysql/data/db1/下

8、将拷贝过来的.ibd表数据导入进来

ALTER TABLE  `table1` IMPORT TABLESPACE;   然后数据就恢复啦~~

标签:table1,删除,恢复,ibd,-------,mysql,data,目录
From: https://www.cnblogs.com/CaptainLin/p/17973343

相关文章

  • mysql内置函数
    Mysql常用内置函数数字函数函数名称作用ABS求绝对值SQRT求二次方根MOD求余数CEIL和CEILING两个函数功能相同,都是返回不小于参数的最小整数,即向上取整FLOOR向下取整,返回值转化为一个BIGINTRAND生成一个0~1之间的随机数,传入整数参数是,用来产生重......
  • MySQL并行复制死锁源码解析
    最近一个MySQL5.7.21备库告警当天的备份失败,登录上去看的时候发现前一天的备份任务还没有结束,通过查看日志发现无法备份成功的原因是一直无法获取FTWRL锁,登录MySQL查看会话状态发现其中几个复制worker一致处于异常状态,下发STOPSLAVE命令时命令也一直被卡住,当时的会话状态如下:......
  • ES和mysql数据同步
    elasticsearch中的数据来自于mysql数据库,因此mysql数据发生改变时,elasticsearch也必须跟着改变,这个就是elasticsearch与mysql之间的数据同步。常见的数据同步方案有三种:同步调用异步通知监听binlog 同步调用 基本步骤如下:hotel-demo对外提供接口,用来修改ela......
  • 你真的了解MySQL日期函数吗?
    MySQL提供了丰富的日期和时间函数,用于处理和操作日期时间数据。本篇博文将深入介绍一些常用的MySQL日期函数,通过详细的例子带你了解这些函数的用法和实际应用。1.CURDATE()-获取当前日期CURDATE()函数返回当前日期,不包含时间信息。SELECTCURDATE();结果可能类似于:+-----......
  • 19条MySQL优化
    一善用EXPLAIN 做MySQL优化,我们要善用 EXPLAIN 查看SQL执行计划。下面来个简单的示例,标注(1,2,3,4,5)我们要重点关注的数据•type列: 连接类型。一个好的sql语句至少要达到range级别。杜绝出现all级别•key列: 使用到的索引名。如果没有选择索引,值是NULL。可以采取强制......
  • 一体机HDATA恢复数据
    瀚高数据库目录文档用途详细信息文档用途一体机HDATA恢复数据详细信息1.恢复数据到指定位置1)停止数据库systemctlstophghac-vippg_ctlstop2)声明新的环境变量$PGDATA,及新的数据目录exportPGDATA=/data/highgo/data20233)恢复数据到指定目录db_backuprestore4)启动数据库pg_......
  • docker 安装MYSQL
    安装dockerrun-p3308:3306--nametest-mysql-v/var/docker-data/mysql/conf:/etc/mysql/conf.d-v/var/docker-data/mysql/logs:/logs-v/var/docker-data/mysql/data:/var/lib/mysql-eMYSQL_ROOT_PASSWORD=123456-dmysql:5.7.43关于主机是不是需要my.cnf实测并......
  • mysql和redis库存扣减和优化
    前言大流量情况下的库存是老生常谈的问题了,在这里我整理一下mysql和redis应对扣除库存的方案,采用jmeter进行压测。JMETER设置库存初始值50,线程数量1000个,1秒以内启动全部,一个线程循环2次,共2000个请求MySQL方案初始方案<updateid="decreaseStock">UPDATEstock......
  • 开发遇到的问题总结---mysql建表报SQL 错误 [1067] [42000]: Invalid default value f
    报错内容:SQL错误[1067][42000]:Invaliddefaultvaluefor'begin_time'sql语句:CREATETABLE`tb_seckill_voucher`(`voucher_id`bigint(20)UNSIGNEDNOTNULLCOMMENT'关联的优惠券的id',`stock`int(8)NOTNULLCOMMENT'库存',`creat......
  • 计算机服务器中了lockbit3.0勒索病毒如何处理,勒索病毒解密数据恢复
    近期,网络上的勒索病毒非常猖狂,给企业的生产运营带来了极大困难,网络技术的发展为企业的生产运营提供了极大便利,但也为企业的数据安全带来严重威胁。下面就为大家整理了以下有关lockbit3.0的处理建议。一,lockbit3.0勒索病毒特点攻击加密复杂。Lockbit3.0勒索病毒具有较强的攻击加密能......