mysql数据库安全性配置——日志记录

 一:开启数据库日志记录

(1)在查看数据库是否开启日志记录,默认是OFF,即关闭状态。(可在数据库中执行该查询语句,也可在服务器端执行)

show variables like 'log_bin';

(2)开启数据库日志记录功能(在服务器端执行)

   首先,查看my.cnf文件路径。

find / -name my.cnf

  

   然后,打开my.cnf配置文件,进行编辑。

vi /etc/my.cnf

  

  接下来,在配置文件中添加, log-bin=mysql-bin,如图。

  

  最后,重启mysql。

service mysqld restart

  查看日志启动状态,启动日志成功。

 

二:日志记录使用(记录日志+查看日志+恢复日志)

(1)查看日志记录文件地址

一般mysql日志记录会生成【mysql-bin.000001】格式的文件。我们输入命令:

find / -name mysql-bin.000001

  

可以看出,我们的日志文件路径在【/var/lib/mysql/】下。

(2)我们执行,刷新操作(sql语句)

flush logs;

再看日志记录,会发现多了一条日志版本。

(3)让我们来看一下最后一条日志信息的相关信息。

show master status;

 

位置信息为106。并且以后的增删改操作就记录在这个最新的bin-log日志里。

(4)让我们来清空日志信息。

reset master;

  

已经没有最新版本那个日志文件了。

(5)测试对数据库进行修改的记录。

我在数据库中删除了一条数据,查看日志状态,发现position字节已经增多,说明,日志记录有改动了。

接下来,让我们看看都改动了哪些内容。

(注意:我们如果直接用vi命令打开日志文件会乱码,所以我们需要先找到mysqlbinlog文件路径,执行使用该命令才能打开)

 

我的服务器上mysqlbinlog文件路径为【/usr/bin/mysqlbinlog】

然后执行

/usr/bin/mysqlbinlog --no-defaults mysql-bin.000002

打开日志文件如下:

(6)通过日志记录进行数据恢复

  • 找到需要恢复到日志记录某个版本,此处举例:mysql-bin.000002,例如:
/usr/bin/mysqlbinlog --no-defaults mysql-bin.000002|mysql -uroot -p
  • 根据开始位置或者结束位置来恢复自己想恢复的参数,例如:

  --stop-position = "100"    --start-position = "50" 

/usr/bin/mysqlbinlog --no-defaults mysql-bin.000002 --stop-position="303"|mysql -uroot -p
  • 根据开始日期时间或者结束位置来恢复自己想恢复的参数

  --stop-date= "2016-03-02 12:00:00"    --start-date= "2016-03-02 11:55:00" 

/usr/bin/mysqlbinlog --no-defaults mysql-bin.000002 --stop-date= "2016-03-02 12:00:00"|mysql -uroot -p

  

本文参考地址:https://www.cnblogs.com/it-cen/p/5234345.html

原文地址:https://www.cnblogs.com/yangyuke1994/p/9686558.html