MySQL5.7 开启 log_bin 日志审计

文章 未结 精帖 0 8.98w
无法显示用户头像
作者:陆刃甲,责任编辑:陆刃甲 2 白银
发布于 2019-05-27
开启 log_bin 日志,在 mysql 的配置文件 [mysqld] 标签下修改或添加如下配置: [pre] server-id=1 log-bin=mysql-bin binlog_format=MIXED [/pre] log_bin 有三种日志模式 Mysql复制主要有三种方式: 基于SQL语句的复制(statement-based replication, SBR); 基于行的复制(row-based replication, RBR); 混合模式复制(mixed-based replication, MBR); 对应的,log_bin 的格式也有三种: STATEMENT,ROW,MIXED。 1、STATEMENT模式(SBR) 每一条会修改数据的sql语句会记录到binlog中。优点是并不需要记录每一条sql语句和每一行的数据变化,减少了binlog日志量,节约IO,提高性能。缺点是在某些情况下会导致master-slave中的数据不一致(如sleep()函数, last_insert_id(),以及user-defined functions(udf)等会出现问题)。 2、ROW模式(RBR) 不记录每条sql语句的上下文信息,仅需记录哪条数据被修改了,修改成什么样了。而且不会出现某些特定情况下的存储过程、或function、或trigger的调用和触发无法被正确复制的问题。缺点是会产生大量的日志,尤其是alter table的时候会让日志暴涨。 3、MIXED模式(MBR) 以上两种模式的混合使用,一般的复制使用STATEMENT模式保存binlog,对于STATEMENT模式无法复制的操作使用ROW模式保存binlog,MySQL会根据执行的SQL语句选择日志保存方式。 查看默认的日志保存天数 [pre] show variables like '%expire_logs_days%'; [/pre] 0-表示永不过期 设置为7天有效期(修改配置文件) [pre] expire_logs_days=7 [/pre] log_bin 日志文件查看 由于 log_bin 产生的日志记录文件属于二进制数据文件,所以使用普通的 vi、vim、cat 等命令打开会乱码,只有使用 log_bin 的查看工具,如下: [pre] mysqlbinlog /var/lib/mysql/mysql-bin.000003 [/pre]

声明:本文所有观点仅代表创作者本人,ECode1024系信息收集发布平台,ECode1024仅提供信息存储以及展示服务。若有侵权,请联系我们删除。
回复
  • 暂无任何回复,抢个沙发吧~~
推荐阅读
ECode1024 QQ交流群

打开手机QQ扫码加入 ECode1024 交流群

ECode1024 微信交流群

打开手机微信扫码关注 ECode1024 公众号