MySQL数据库进行了哪些CUD操作,通过binlog二进制文件可以查看。binlog不仅可以记录CUD的操作(select操作不包括在内),还是主从备份的基础。主库的操作记录成binlog文件,定期地从主库拷贝到从库。实际中使用binlog要考虑到文件大小的问题,要有定期删除的功能,否则会积累大量的文件。

在my.ini下添加:

log-bin=mysql-bin

long_query_time=0.1

log-slow-queries="\Temp\slow.log"

log-queries-not-using-indexes=TRUE

log-error="\Temp\log-error.log"

上面的配置将打开binlog记录功能,缓慢查询的记录功能,错误查询的记录功能等。

mysql> show variables like '%datadir%';

  +---------------+----------------------+

  | Variable_name | Value                |

  +---------------+----------------------+

  | datadir       | D:\NNM5\MySQL5\data\ |

  +---------------+----------------------+

  1 row in set (0.00 sec)

  mysql> show master status;

  +------------------+----------+--------------+------------------+

  | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

  +------------------+----------+--------------+------------------+

  | mysql-bin.000001 |   170435 |              |                  |

  +------------------+----------+--------------+------------------+

则现在正在使用的binlog文件是D:\NNM5\MySQL5\data\mysql-bin.000001

日志文件的生成将遵循如下规则:

1. 每天生成一个新的文件,例如每天将生成mysql-bin.000002

2. 文件大小超过设置的值时将生成新的文件:

  mysql> show variables like '%max_binlog%';
  +----------------------------+----------------------+
  | Variable_name                   | Value                       |
  +----------------------------+----------------------+
  | max_binlog_cache_size      | 18446744073709547520 |
  | max_binlog_size                | 1073741824             |
  | max_binlog_stmt_cache_size | 18446744073709547520 |
  +----------------------------+----------------------+

希望查看进行了哪些数据库操作,可以使用mysql自带的工具mysqlbinlog.exe

D:\NNM5\MySQL5\bin>mysqlbinlog D:\NNM5\MySQL5\data\mysql-bin.000001

可以看到类似下面的输出,从中可以找到已有的操作。

SET TIMESTAMP=1415604740/*!*/;

  update versions set ver = "1.0.2" where module = 'WebNATService'

  /*!*/;

  # at 12755

  #141110 15:32:20 server id 1  end_log_pos 12782         Xid = 188

  COMMIT/*!*/;

  # at 12782

  #141110 15:32:23 server id 1  end_log_pos 12850         Query   thread_id=3     exec_time=0     error_code=0

  SET TIMESTAMP=1415604743/*!*/;

  BEGIN

  /*!*/;

  # at 12850

  #141110 15:32:23 server id 1  end_log_pos 13123         Query   thread_id=3     exec_time=0     error_code=0

  SET TIMESTAMP=1415604743/*!*/;

  另外MySQL安装目录data目录下的ib_logfile0和ib_logfile1虽然也是二进制文件,但是是记录innodb的操作,是不能使用mysqlbinlog.exe来查看的。

  MySQL无法启动或者启动时的一些遗产可以查看MySQL安装目录data目录下的RCYF-2265.err,其中RCYF-2265是操作系统的用户名。

注意:

开启了二进制文件而且数据库中有函数或存储过程,可能在数据库运行过程中会出现下面的错误:

  you *might* want to use the less safe log_bin_trust_function_creators variable

出现上面的异常时,my.ini中需要添加:log-bin-trust-function-creators=1

  如果程序中有大量的sql操作时,记录日志就意味着大量的IO操作,会记录大量日志文件,影响软件的性能。慢查询的时间也需要考虑,太短会有问题,会记录到大部分的查询,影响系统的性能。

MySQL二进制日志binlog简单使用的更多相关文章

  1. 小记---------maxwell 一个可以实时读取mysql二进制日志binlog,并生成JSON格式的消息,作为生产者发送给kafka,Redis,文件或其他平台的应用程序

    maxwell主要提供了下列功能     支持 SELECT * FROM table 的方式进行全量数据初始化     支持在主库发生failover后,自动回复binlog位置(GTID)     ...

  2. mysql导出csv/sql/newTable/txt的方法,mysql的导入txt/sql方法...mysql备份恢复mysqlhotcopy、二进制日志binlog、直接备份文件、备份策略、灾难恢复.....................................................

    mysql备份表结构和数据 方法一. Create table new_table_nam备份到新表:MYSQL不支持: Select * Into new_table_name from old_t ...

  3. mysql dba系统学习(6)二进制日志binlog之二

    MySQL 5.5 中对于二进制日志 (binlog) 有 3 种不同的格式可选:Mixed,Statement,Row,默认格式是 Statement.总结一下这三种格式日志的优缺点.MySQL R ...

  4. mysql 开发进阶篇系列 39 mysql日志之二进制日志(binlog)

    一.概述 二进制日志(binlog)记录了所有的DDL(数据定义语言)语句和DML(数据操纵语言)语句,但是不包括数据查询语句, 语句以"事件"的形式保存,它描述了数据的更改过程, ...

  5. MySQL二进制日志总结

    二进制日志简单介绍 MySQL的二进制日志(binary log)是一个二进制文件,主要用于记录修改数据或有可能引起数据变更的MySQL语句.二进制日志(binary log)中记录了对MySQL数据 ...

  6. MySQl Study学习之--MySQl二进制日志管理

    MySQl Study学习之--MySQl二进制日志管理 MySQL二进制日志(Binary Log)   a.它包括的内容及作用例如以下:     包括了全部更新了数据或者已经潜在更新了数据(比方没 ...

  7. 必须了解的mysql三大日志-binlog、redo log和undo log

    日志是 mysql 数据库的重要组成部分,记录着数据库运行期间各种状态信息.mysql日志主要包括错误日志.查询日志.慢查询日志.事务日志.二进制日志几大类.作为开发,我们重点需要关注的是二进制日志( ...

  8. mysql 二进制日志后缀数字最大为多少

    之前看到mysql二进制日志后面会加一个以数字递增为结尾的后缀,一直在想当尾数到达999999后会发生什么情况,先查了一下官网,对后缀有这样一句介绍:The server creates binary ...

  9. MySQL二进制日志的备份和恢复

    二进制日志:记录数据库修改的相关操作,作用是即时点回复,主从复制 可以按时间滚动,也可以按大小滚动 server-id:服务器身份标识 一.二进制文件的删除方法,千万不要手动删除 PURGE BINA ...

随机推荐

  1. CodeForces801-A.Vicious Keyboard-暴力

    A. Vicious Keyboard time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  2. codeforces A. Orchestra B. Island Puzzle

    A. Orchestra time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...

  3. 一步一步从原理跟我学邮件收取及发送 3.telnet命令行发一封信

    首先要感谢博客园管理员的及时回复,本系列的第二篇文章得以恢复到首页,这是对作者的莫大鼓励.说实在的本来我真的挺受打击的.好在管理员说只是排版上有些问题,要用代码块修饰下相关的信息.说来惭愧因为常年编码 ...

  4. Shell菜单脚本

    今天在这儿给大家分享一个我简单编写的Shell菜单脚本,傻瓜式的人机交互,人人都可以操作linux. #!/bin/sh #Shell菜单演示 function menu () { cat <& ...

  5. [国嵌攻略][051][NandFlash原理解析]

    扮演角色 相当于嵌入式设备的硬盘 NandFlash分类 1.SCL(single level cell):单层式存储 2.MLC(multi level cell):多层式存储 3.SCL在存储格上 ...

  6. 用adb录制手机屏幕视频

    adb shell screenrecord命令可以用来录制Android手机视频 screenrecord是一个shell命令,支持Android4.4(API level 19)以上,支持视频格式 ...

  7. 【JavaScript_轮播图】

    今天给大家带来的是我自己做的一个轮播图效果,让我们一起来学习一下吧. 这是我的页面所有代码: <!DOCTYPE html> <html> <head> <m ...

  8. phpstudy中的mysql

    1.进入mysql命令台,执行 select version()即可 2status;

  9. 如何解决wamp中apache外部IP访问问题

    # # Some examples: #ErrorDocument 500 "The server made a boo boo." #ErrorDocument 404 /mis ...

  10. Linux pmstat命令

      mpstat是linux一款实时系统监控工具.其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中.在多CPU系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU ...