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