MySQL的备份
use enterprisedb;
show tables;
在命令行下,不在mysql中,当然也不需要分号。。。
mysqldump -u root -p enterprisedb >"D:\test.sql"
在任意表中插入新的数据
insert into employee values(86007,'Hence','M','1965.6.13','Marketing',12000,1);
insert into employee values(86006,'Hence','M','1965.6.13','Marketing',12000,1);
MySQL的恢复
drop database enterprisedb;
在这之前要在MYSQL中重新建立一个
create database enterprisedb;
来接收备份的文件。
命令行下,不需要分号。
mysql -u root -p enterprisedb <D:\test.sql
利用mysqlbinlog恢复1.3中所插入的数据,并验证 show master logs;
查看自己的操作被记录在了那个binlog文件中(一般存放在标号最大的ID下)
show binlog events in 'binlog.000015';
引号中的文件名称对应的上面表格中的名字
查看这个日志文件中记录了那些操作。
在删除数据库之前,我插入了两条数据。截取的图片中,最后一行可以看到是drop操作。那么前面两段对应的应该是insert操作。
但是,应该注意的是,insert语句对应了不止一个记录 。要从BEGIN对应的标号开始,到SET.....信息结束。每个insert对应了五条记录。
mysql> show variables like '%datadir%'
找到对应的binlog文件所在的文件夹;命令行使用cd 语句进入该目录下
C:\Program Files\MySQL\MySQL Server 8.0\data>mysqlbinlog binlog.000015 --start-position 234 --stop-position 928|mysql -u root -p
因为我插入了2条语句,所以234是开始位置,928是结束位置(928也是drop语句的开始位置)。
C:\Program Files\MySQL\MySQL Server 8.0\data>mysql -u root -p
Enter password: ******
use enterprisedb;
select * from employee;
可以看出,恢复了两条插入语句。
参考博文:Mysql之binlog日志说明及利用binlog日志恢复数据操作记录
MySQL使用binlog日志做数据恢复
MySQL 二进制日志(Binary Log)
差不多对吧,应该这样的吧。