mysql 开发进阶篇系列 40 mysql日志之二进制日志下以及查询日志

一.binlog 二进制其它选项

  在二进制日志记录了数据的变化过程,对于数据的完整性和安全性起着非常重要作用。在mysql中还提供了一些其它参数选项,来进行更小粒度的管理。

  1.1 binlog-do-db=db_name

    该选项告诉主服务器,当前db_name库会更新记录到二进制日志中,其它所有没有显示指定的数据库更新时不记录到二进制日志中。

  1.2 binlog-ignore-db=db_name

    该选项告诉主服务器,当前db_name库不会更新记录到二进制日志中,其它所有没有显示指定的数据库会更新到二进制日志中。

    下面来演示下binlog-ignore-db选项。在my.cnf中加上binlog-ignore-db=test。该test库更新时不记录到二进制日志中。my.cnf设置如下图所示:

    修改my.cnf后,重启mysqld服务,查看最新binlog编号为 000017。

--在test库的a表中插入一条数据
INSERT INTO a VALUES('cccccc');

    查看binlog二进制日志,发现该插入语句,没有在二进制日志中出现。如下图所示:

    接下来注释my.cnf中的binlog-ignore-db=test。

    重启mysqld服务, 查看最新binlog编号为000018。如下图所示:

--在test库的a表中插入一条数据
INSERT INTO a VALUES('dddddd');

    查看binlog二进制日志,发现该插入语句,已经记录到二进制日志中。如下图所示:

   总结:

    (1)对于明文的DML语句,使用 如:./mysqlbinlog --base64-output=decode-row -v mysql-bin.000018
    (2)在mysql客户端使用FLUSH LOGS或重启服务会生成新的binlog日志文件序号(已确定 )。
    (3)除了使用mysqlbinlog查看还可以在mysql客户端使用,先设置my.cnf的binlog_rows_query_log_events=1, 开启如下图所示:

      


      SHOW VARIABLES LIKE 'binlog_rows_query_log_events' 

      

-- 插入数据
INSERT INTO testbackup VALUES(4,'田七')
-- 查看binlog日志
SHOW BINLOG EVENTS IN 'mysql-bin.000029' ;

    


     (4) 使用SHOW MASTER STATUS;查看最新日志

二. 查询日志general_log

  上面我们知道,在二进制日志里是不包含查询数据的语句。下面可以使用general_log=1选项参数开启,来记录客户端的所有查询语句。log_output=FILE,TABLE 选项参数为输出格式是文件和表。 启动mysqld服务后,查询日志开始被记录。

-- 日志查询是否开启,如果general_log的值为ON则为开启,为OFF则为关闭(默认情况下是关闭的)
SHOW VARIABLES LIKE '%general%';

    

-- 输出日志格式为文件还是表
SHOW VARIABLES LIKE '%log_output%';

    

  对于查询日志log这里就不在演示。在log中记录了所有数据库的操作,对于访问频繁的系统,此日志对系统性能的影响较大,一般不建议开启,如果是对查询进行跟踪确认可以打开记录一段时间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值