首先需要我们的mysql开启二进制日志
vim my.cnf
#如果不知道自己的mysql配置文件在哪里,可以用 find / -name my.cnf 查找路径
log-bin=binlog #开启二进制日志
#保存退出
systemctl restart mariadb #重启mysql
1.查看二进制日志是否开启
2.查看二进制日志文件名
3.查看正在使用哪一个日志
4.查看二进制文件内容
5.停止二进制日志的两种方法
一种方法是删除[mysqld]组里的log-bin条目,重启mysql服务
另一种方法是:
set sql_log_bin=0 //暂停二进制日志
set sql_log_bin=1 //启用二进制日志
6.删除二进制日志
i. 删除所有二进制日志,然后重新生成一个从000001开始的文件
reset master;
ii. 删除编号小于number的所有二进制日志文件
purge master logs to filename.number;;
iii. 删除指定时间之前的二进制日志
purge master logs before ‘yyyy-mm-dd hh:mm:ss’;
7.mysqlbinlog命令查看二进制日志
mysqlbinlog命令的常用选项
–start-postion 开始位置
–stop-postion 结束位置
–start-datetime ‘yyyy-mm-dd hh:mm:ss’ 开始时间
–stop-datetime ‘yyyy-mm-dd hh:mm:ss’ 结束时间
mysqlbinlog --no-defaults /var/lib/mysql/mysql-bin.000001 --start-position=106 --stop-position=272
8.使用二进制日志还原数据
在备份mysql数据库时,将相关的二进制日志备份进行备份就是mysql的增量备份,恢复时可以二进制日志进行增量恢复
a) 通过时间还原
mysqlbinlog --start-datetime="时间" 日志文件路径 | mysql -u用户 -p //从规定的起始时间还原到现在
mysqlbinlog --stop-datetime="时间" 日志文件路径 | mysql -u用户 -p //从最开始还原到规定的结束时间
mysqlbinlog --start-datetime="时间" --stop-datetime="时间" 日志文件路径 | mysql -u用户 -p //从规定的起始时间还原到规定的结束时间
b) 通过位置还原
mysqlbinlog --start-position="位置" 日志文件路径 | mysql -u 用户 -p //从规定的起始位置还原到现在
mysqlbinlog --stop-position="位置" 日志文件路径 | mysql -u 用户 -p //从最开始还原到规定的结束位置
mysqlbinlog --start-position="位置"--stop-position="位置" 日志文件路径 | mysql -u用户 -p //从规定的起始位置还原到规定的结束位置