MySQL数据库二进制日志

二进制日志简介

二进制日志: 该日志文件会以二进制形式记录数据库的各种操作,但是不记录查询语句。

MySQL 的二进制日志 binlog 可以说是 MySQL 最重要的日志,它记录了所有的 DDL 和 DML 语句(除了数据查询语句Select、Show等),以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。Binlog 的主要目的是复制和恢复。

MySQL的二进制日志(Binary Log)是一个二进制文件,主要用于记录修改数据或有可能引起数据变更的MySQL语句。二进制日志(Binary Log)中记录了对MySQL数据库执行更改的所有操作,并且记录了语句发生时间、执行时长、操作数据等其它额外信息,但是它不记录SELECT、SHOW等那些不修改数据的SQL语句。二进制日志(Binary Log)主要用于数据库恢复和主从复制,以及审计(Audit)操作。

环境准备

准备一台Centos7服务器
系统: Centos7.3
内存:1G
cpu: 2核
IP地址:10.0.0.42
# 安装数据库服务
yum -y install mariadb mariadb-server
# 启动数据库
systemctl start mariadb
# 编辑修改数据库配置文件
vim /etc/my.cnf

在这里插入图片描述

然后重启mysqld服务

systemctl restart mariadb

查看数据库服务状态

在这里插入图片描述

查看二进制日志是否开启

# 登陆至数据库
mysql
show variables like '%log_bin%';

在这里插入图片描述

查看二进制日志文件名

show binary logs;

在这里插入图片描述

查看正在使用哪一个日志

show master status \G;

show master status ;

在这里插入图片描述

查看二进制文件内容

show binlog events in 'mysql-bin.000003';

在这里插入图片描述

查看mysql数据库存储引擎

show variables like '%storage_engine%';

在这里插入图片描述

查看数据库目录

show variables like '%dir%';

在这里插入图片描述

显示指定的二进制日志文件(例如:mysqld.000003)的内容

mysqlbinlog mysql-bin.000004

在这里插入图片描述

# 创建两个库
create database wg charset=utf8;
create database szm charset=utf8;
use szm;

# 创建表
create table szm(id int unsigned auto_increment primary key not null, name varchar(30) not null );
# 插入数据
insert szm values(0,22);
# 查询表中数据
select * from szm;

在这里插入图片描述

# 进入到第二个库里面
 use wg;
# 创建表
 create table xxo(id int unsigned auto_increment primary key not null, name varchar(30) not null );
# 插入数据
 insert xxo values(0,111);

在这里插入图片描述

# 模拟数据库被误删
drop database wg;

drop database szm;

在这里插入图片描述

使用二进制日志还原数据

1、通过位置还原

//从规定的起始位置还原到现在
//从最开始还原到规定的结束位置
 mysqlbinlog --start-position=555 --stop-position=1566 /var/lib/mysql/mysql-bin.000004 | mysql -uroot

在这里插入图片描述

2、通过时间还原

//从规定的起始时间还原到规定的结束时间
//从最开始还原到规定的结束时间
mysqlbinlog --start-datetime='2019-12-27 8:54:43' --stop-datetime='2019-12-27   9:40:29 ' /var/lib/mysql/mysql-bin.000004| mysql -uroot 

在这里插入图片描述

发布了68 篇原创文章 · 获赞 24 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/aaronszm/article/details/103722314