Mysql binlog的基本使用和数据库恢复步骤

前言

简单记录下使用binlog的使用和恢复数据库的操作

开启binlog

开启mysql binlog日志,进入mysql配置文件(vi /etc/my.cnf) 在mysqld区域内添加如下内容,

 # 单个节点id
server-id = 1
 # 位置一般和mysql库文件所在位置一样
log-bin= /var/lib/mysql/mysql-bin
# 表示此日志保存时间为10天
expire_logs_days = 10

重启mysqld,再次查看binlog日志开启状态为ON

binlog常用命令

show variables like '%log_bin%'; //查看binlog开启状态
show variables like '%datadir%'; //查看binlog存放日志文件目录
show master logs; //查看所有binlog日志文件列表
show binlog events in ‘mysql-bin.000003’; //查看binglog日志内容
Flush logs  //刷新日志

恢复数据库

一般流程

备份数据库=> 刷新binlog => 操作失误 => 使用mysqlbinlog生成最近备份到失误前的命令的.sql文件 => 还原最新的备份数据库 => 执行.sql文件(执行备份后执行的正确命令)

1.1 linux下使用

# 使用pos生成
/usr/bin/mysqlbinlog  --start-position=573 --stop-position=718 --database=hello  /var/lib/mysql/mysql-bin.000006 | /usr/bin/mysql -uroot -p密码 -v hello
# 使用日期生成
/usr/bin/mysqlbinlog --start-datetime="2018-04-27 20:57:55" --stop-datetime="2018-04-27 20:58:18" --database=hello /var/lib/mysql/mysql-bin.000009 | /usr/bin/mysql -uroot -p密码 -v hello

1.2 windows下使用

# 使用pos生成
/usr/bin/mysqlbinlog  --start-position=573 --stop-position=718 --database=hello  /var/lib/mysql/mysql-bin.000006 > sql6.sql

2 恢复

source sql6.sql

总结:

1.恢复之前先用备份数据库恢复数据

2.使用mysqlbinlog命令时 不可以在window powershell下执行,可以在cmd下执行

3.最后使用binlog生成的sql文件恢复数据时,不可以在navicate里面执行文件,只能在cmd下执行

4.备份数据库和使用binlogs命令的时候,最好使用flush logs刷新binlog日志,可以简化日后对binlog日志的pos查找

5.mysqlbinlog可在mysql的bin目录下找到 windows: C:\Program Files\MySQL\MySQL Server 8.0\bin

posted @ 2020-11-24 17:00  落叶&不随风  阅读(504)  评论(0编辑  收藏  举报