binlog日志
记录除查询以外的所有sql命令
可用于数据恢复
配置mysql主从同步的必要条件
vim /etc/my.cnf
[mysql]
log_bin
server_id=100
systemctl restart mysqld //重启mysql
主机名-bin.index
主机名-bin.000001
手动生成新的日志文件
1、mysql>flush logs;
不在数据库的命令
2、mysqldump 指定数据库 --flush-logs
3、mysql -u root -p password -e "flush logs" //通过密码在数据库中执行指令
删除binlog日志
删除早于指定版本的binlog日志
purge master logs to “binlog文件名”
重建日志并删除之前的所有日志
reset master
数据库中查看biglog日志格式
show variables like “binlog_format”
statement:每一条修改数据的sql命令都会记录在binlog日志中
row:不记录sql语句上下文相关信息,仅保存哪条记录被修改
mixed:是以上两种格式的混合使用
修改日志的记录格式为:mixed
vim /etc/my.cnf
[mysql]
binlog_format=mixed
systemctl restart mysqld
从日志恢复数据库
mysqlbinlog /var/lib/mysql/calvin-bin.000002 //查看日志文件
//在日志文件中找到需要恢复的开始时间与结束时间
mysqlbinlog
--start-datetime="2020-07-25 15:17:46"
--stop-datetime="2020-07-25 15:18:30"
/var/lib/mysql/calvin-bin.000002 | mysql -u root -p
恢复所有的数据库
mysqlbinlog /var/lib/mysql/calvin-bin.000002 | mysql -u -root -p