mysql 恢复到新库_记一次mysql从删库到恢复的经历

记一次mysql从删库到恢复的经历

wesen • 2019 年 01 月 18 日

程序员删库后只能跑路吗?那我这个业余爱好者,删除的是自己的博客库,没路可跑怎么办?

40cb5dfc52c5d18e7e314b5e4ae5f3df.png --那就硬着头皮学恢复

Mysql数据库恢复的几种方法备份(关于养成好的备份习惯以及自动备份,不在本文讨论之列);

binlog日志;

简单了解binlogbinlog是一个二进制格式的文件,用于记录用户对数据库更新的SQL语句信息,例如更改数据库表和更改内容的SQL语句都会记录到binlog里,但是对库表等内容的查询不会记录。

binlog作用MySQL主从复制:MySQL Replication在Master端开启binlog,Master把它的二进制日志传递给slaves来达到master-slave数据一致的目的。

数据恢复,通过使用mysqlbinlog工具来使恢复数据。

开启方法找到mysql配置文件my.cnf,并用编辑器打开,一般位于/etc/my.cnf;

在[mysqld] 区块添加log-bin=mysql-bin(默认没有或者是注释掉的);

注意:每次服务器(数据库)重启,服务器会调用flush logs;,新创建一个binlog日志!19.8.3更新,如果修改my.cnf后重启失败,可能是启用了binlog,但是没有提供强制规定的server-id参数.添加配置server-id=1(随意设定,但集群环境下要配置不同的值,不能重复),再次重启mysql,正常!

常用的binlog日志操作命令

1.查看日志文件mysql> show master logs;

+------------------+-----------+

| Log_name | File_size |

+------------------+-----------+

| mysql-bin.000001 | 149 |

| mysql-bin.000002 | 4102 |

+------------------+-----------+

2.flush刷新log日志,自此刻开始产生一个新编号的binlog日志文件mysql> flush logs;

Query OK, 0 rows affected (0.13 sec)

mysql> show master logs;

+------------------+-----------+

| Log_name | File_size |

+------------------+-----------+

| mysql-bin.000001 | 149 |

| mysql-bin.000002 | 4145 |

| mysql-bin.000003 | 106 |

+------------------+-----------+

3 rows in set (0.00 sec)

查看binlog日志内容

1.使用mysqlbinlog自带查看命令法:

查看mysql的数据存放目录ps -ef|grep mysql

datadir即为数据存方路径

可以cd到数据存方目录,使用mysqlbinlog命令打开日志文件mysqlbinlog mysql-bin.000002

2.mysql读取日志内容mysql> show binlog events [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count];

参数解释:

IN 'log_name':指定要查询的binlog文件名(不指定就是第一个binlog文件)

FROM pos:指定从哪个pos起始点开始查起(不指定就是从整个文件首个pos点开始算)

LIMIT [offset,] :偏移量(不指定就是0)

row_count:查询总条数(不指定就是所有行)

示例:mysql> show binlog events in 'mysql-bin.000002'\G;

利用binlog日志恢复mysql数据

以下命令都是在datadir下执行

1.将binlog日志文件转sqlmysqlbinlog mysql-bin.000002 > 000002.sql

2.建议打开编辑sql,如果是误删了数据,将sql中开始删除的操作点后的sql删除

3.从sql恢复mysql -uroot -p -v < 000002.sql

以上恢复只是将之前的sql重新执行一次,如果有精确到点的恢复,请查看以下文章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值