mysql binlog数据恢复_MySQL数据恢复(binlog)

首先开启binlog。

修改mysql配置/etc/mysql/mysql.conf.d/mysqld.cnf(window环境是mysql安装目录的my.ini)

server-id = 10 //mysql服务器的唯一标示

log_bin = /var/log/mysql //存放二进制log文件的路径

重启mysql。

进入Mysql执行下面命令。

show variables like '%log_bin%';

显示这些信息就表示配置成功。

log_bin ON

log_bin_basename /var/log/mysql/mysql-bin

log_bin_index /var/log/mysql/mysql-bin.index

log_bin_trust_function_creators OFF

log_bin_use_v1_row_events OFF

sql_log_bin ON

查看日志文件

show master status;

mysql-bin.000001    154

mysql-bin.000001  文件是二进制文件。

我们可以在终端使用Mysql的 mysqlbinlog 工具。

查看log命令

mysqlbinlog /var/log/mysql/mysql-bin.000001;

导出命令

mysqlbinlog /var/log/mysql/mysql-bin.000001 > /var/log/mysql/000001.txt;

导出某段时间命令

mysqlbinlog --start-datetime='2016-11-15 00:00:00' --stop-datetime='2016-11-16 00:00:00' /var/log/mysql/mysql-bin.000001  > /var/log/mysql/000001.txt

导出某段位置命令

mysqlbinlog --start-position='50' --end-position='100' /var/log/mysql/mysql-bin.000001  > /var/log/mysql/000001.txt

其他操作可以查看MySQL的帮助手册。

下面实现误操作的数据恢复。

重新生成bin-log

flush logs;

查看日志文件

show master status;

mysql-bin.000002    154

创建测试表

create table test(id int(11) auto_increment not null primary key, val varchar(20));

插入数据

insert into test(val) values('liang');

insert into test(val) values('jia');

误删除了这个表

drop table test;

然后是查看binlog文件。

show master status;

导出binlog

mysqlbinlog /var/log/mysql/mysql-bin.000002 > /var/log/mysql/000002.txt;

打开000001.txt 可以看到位置1123执行删除操作。

#161116 15:10:41 server id 10 end_log_pos 996 CRC32 0xe8c2dd15 Anonymous_GTIDlast_committed=3sequence_number=4

SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;

# at 996

#161116 15:10:41 server id 10 end_log_pos 1123 CRC32 0x8956ff72 Querythread_id=7exec_time=0error_code=0

SET TIMESTAMP=1479309041/*!*/;

DROP TABLE `test` /* generated by server */

执行命令恢复数据。

sudo mysqlbinlog mysql-bin.000002 --stop-position=996 | mysql -uhomestead -p

输入数据库密码。重新进入mysql,数据恢复了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值