1. MySQL的binlog有三种模式: statement, row and mixed, 从5.1开始支持row, 默认是row模式

2. 设置参数

# 要配置在mysqld下
[mysqld]
binlog_format=ROW

设置binlog过期清理时间 expire_logs_days

# Should be unique
server-id =
log-bin = master-bin
# The number of days for automatic binary log file removal
expire_logs_days =
# :log&flush per 1s; :log&flush per commit; :log per commit & flush per 1s
innodb_flush_log_at_trx_commit=
# The number of binary log commit groups to collect before sync to disk.
sync_binlog =

3. 查看binlog是否开启及其参数

mysql> show variables like 'log_bin%';
+---------------------------------+---------------------------------+
| Variable_name | Value |
+---------------------------------+---------------------------------+
| log_bin | ON |
| log_bin_basename | /var/lib/mysql/master-bin |
| log_bin_index | /var/lib/mysql/master-bin.index |
| log_bin_trust_function_creators | OFF |
| log_bin_use_v1_row_events | OFF |
+---------------------------------+---------------------------------+
5 rows in set (0.01 sec) mysql> show variables like 'binlog%';
+-----------------------------------------+--------------+
| Variable_name | Value |
+-----------------------------------------+--------------+
| binlog_cache_size | 32768 |
| binlog_checksum | CRC32 |
| binlog_direct_non_transactional_updates | OFF |
| binlog_error_action | ABORT_SERVER |
| binlog_format | ROW |
| binlog_group_commit_sync_delay | 0 |
| binlog_group_commit_sync_no_delay_count | 0 |
| binlog_gtid_simple_recovery | ON |
| binlog_max_flush_queue_time | 0 |
| binlog_order_commits | ON |
| binlog_row_image | FULL |
| binlog_rows_query_log_events | OFF |
| binlog_stmt_cache_size | 32768 |
+-----------------------------------------+--------------+
13 rows in set (0.00 sec)

4. 查看服务器的binlog状态

mysql> show binary logs;
+-------------------+-----------+
| Log_name | File_size |
+-------------------+-----------+
| master-bin.000008 | 321270 |
| master-bin.000009 | 1026 |
| master-bin.000010 | 10103 |
| master-bin.000011 | 544150473 |
| master-bin.000012 | 4155620 |
| master-bin.000013 | 21550593 |
+-------------------+-----------+
6 rows in set (0.00 sec) mysql> show master logs;
+-------------------+-----------+
| Log_name | File_size |
+-------------------+-----------+
| master-bin.000008 | 321270 |
| master-bin.000009 | 1026 |
| master-bin.000010 | 10103 |
| master-bin.000011 | 544150473 |
| master-bin.000012 | 4155620 |
| master-bin.000013 | 21550593 |
+-------------------+-----------+
6 rows in set (0.00 sec) mysql> show master status;
+-------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+----------+--------------+------------------+-------------------+
| master-bin.000013 | 21551221 | | | |
+-------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

5. 查看binlog内容

# 查看指定binlog文件的内容语法:
SHOW BINLOG EVENTS [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count]

例如

mysql> show binlog events limit 0, 5;
+-------------------+-----+----------------+-----------+-------------+------------------------------------------+
| Log_name | Pos | Event_type | Server_id | End_log_pos | Info |
+-------------------+-----+----------------+-----------+-------------+------------------------------------------+
| master-bin.000008 | 4 | Format_desc | 1 | 123 | Server ver: 5.7.14-log, Binlog ver: 4 |
| master-bin.000008 | 123 | Previous_gtids | 1 | 154 | |
| master-bin.000008 | 154 | Anonymous_Gtid | 1 | 219 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS' |
| master-bin.000008 | 219 | Query | 1 | 290 | BEGIN |
| master-bin.000008 | 290 | Query | 1 | 385 | use `yic`; DELETE FROM `yic`.`u_session` |
+-------------------+-----+----------------+-----------+-------------+------------------------------------------+
5 rows in set (0.00 sec)
mysql> show binlog events in 'master-bin.000013' limit 0, 5;
+-------------------+-----+----------------+-----------+-------------+---------------------------------------+
| Log_name | Pos | Event_type | Server_id | End_log_pos | Info |
+-------------------+-----+----------------+-----------+-------------+---------------------------------------+
| master-bin.000013 | 4 | Format_desc | 1 | 123 | Server ver: 5.7.14-log, Binlog ver: 4 |
| master-bin.000013 | 123 | Previous_gtids | 1 | 154 | |
| master-bin.000013 | 154 | Anonymous_Gtid | 1 | 219 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS' |
| master-bin.000013 | 219 | Query | 1 | 290 | BEGIN |
| master-bin.000013 | 290 | Table_map | 1 | 373 | table_id: 111 (yic.u_session_log) |
+-------------------+-----+----------------+-----------+-------------+---------------------------------------+
5 rows in set (0.00 sec)

注意: 都是按时间正序排列.

6. 使用mysqlbinlog查看binlog

# 提取指定的binlog日志  (参数需要用绝对路径)
mysqlbinlog /opt/data/APP01bin.
# 根据位置提取
mysqlbinlog --start-position="" --stop-position="" /opt/data/APP01bin.
# 根据开始结束时间提取
mysqlbinlog --start-datetime="2014-12-15 20:15:23" --stop-datetime="2014-12-15 20:30:23" /opt/data/APP01bin. --result-file=extra02.sql
# 对多个binlog文件, 提取指定数据库, 并转换字符集
mysqlbinlog --database=test --set-charset=utf8 /opt/data/APP01bin. /opt/data/APP01bin. >test.sql
# 提取远程的binlog, 并输出到本地
mysqlbinlog -u someone -p -P3306 -h192.168.1. --read-from-remote-server -vv inst3606bin. >row.sql

mysqlbinlog 查看row模式的binlog

# 使用--base64-output=decode-rows -v参数, 就能看懂了
mysqlbinlog --base64-output=decode-rows -v /var/lib/mysql/master-bin.|more

MySQL的binlog操作的更多相关文章

  1. MySQL 利用SQL线程对Binlog操作

    背景: 对于MySQL的binlog的查看都是用其自带的工具mysqlbinlog进行操作的,其实还有另一个方法来操作binlog,就是Replication中的SQL线程去操作binlog,其实bi ...

  2. MySQL 利用SQL线程对Binlog操作(转)

    背景: 对于MySQL的binlog的查看都是用其自带的工具mysqlbinlog进行操作的,其实还有另一个方法来操作binlog,就是Replication中的SQL线程去操作binlog,其实bi ...

  3. Mysql之binlog日志说明及利用binlog日志恢复数据操作记录

    众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 一 ...

  4. mysql关于binlog日志的操作

    查看binlog日志选项和存储位置: mysql> show variables like 'log_%'; 1.查看所有binlog日志列表 mysql> show master log ...

  5. Mysql使用binlog恢复数据解决误操作问题的两种方法

    为保证没有其他参数配置影响,重新安装配置了一台最小化安装的CentOS7虚拟机 1. 基础知识
 安装mysql5.6数据库Mysql binlog初步理解 2. 配置mysql 开启binlog.修 ...

  6. Mysql利用binlog日志恢复数据操作(转)

    a.开启binlog日志:1)编辑打开mysql配置文件/etc/mys.cnf[root@vm-002 ~]# vim /etc/my.cnf在[mysqld] 区块添加 log-bin=mysql ...

  7. 【转】Mysql之binlog日志说明及利用binlog日志恢复数据操作记录

    众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 废 ...

  8. 【转】【MySQL】mysql 通过bin-log恢复数据方法详解

    mysql中bin-log在mysql默认状态下是没有打开的,我们要先打开mysql 开启bin-log功能,然后再通过备份的bin-log进行数据库恢复了. 具体的操作是通过mysqlbinlog这 ...

  9. MySQL的binlog数据如何查看

    binlog介绍 binlog,即二进制日志,它记录了数据库上的所有改变. 改变数据库的SQL语句执行结束时,将在binlog的末尾写入一条记录,同时通知语句解析器,语句执行完毕. binlog格式 ...

随机推荐

  1. iOS:在tableView中通过Masonry使用autolayout在iOS7系统出现约束崩溃

    一.出现崩溃情景: 给tableView创建一个头视图,也即tableHeaderView,然后使用Masonry并切换到iOS7/7.1系统给tableHeaderView中的所有子视图添加约束,此 ...

  2. Pytorch 0.3加载0.4模型及其之间版本的变化

    1. 0.4中使用设备:.to(device) 2. 0.4中删除了Variable,直接tensor就可以 3. with torch.no_grad():的使用代替volatile:弃用volat ...

  3. NLP领域的ImageNet时代到来:词嵌入「已死」,语言模型当立

    http://3g.163.com/all/article/DM995J240511AQHO.html 选自the Gradient 作者:Sebastian Ruder 机器之心编译 计算机视觉领域 ...

  4. 微信小程序阿里云服务器https搭建

    已更新 2018-11-20 1.什么是https?HTTPS(全称:安全套接字层上的超文本传输​​协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版.即HTTP下加入SSL层,HTTPS ...

  5. Python在VSCode中进入交互界面调试

    VSCode非常强大,断点好用,美中不足,每次只能通过下面窄窄一行进行各种检查,而python的优点就在于交互式的调试,所以希望能够在断点时能够进入到正常的交互界面进行调试. 我用的插件是: 设置交互 ...

  6. (转)真正的中国天气api接口xml,json(求加精) ...

      我只想说现在网上那几个api完全坑爹有木有??? 官方的申请不来有木有,还有收费有木有?? 咱这种菜鸟只能用免费的了!!!! http://m.weather.com.cn/data/101110 ...

  7. 理解JavaScript函数参数

    前面的话 javascript函数的参数与大多数其他语言的函数的参数有所不同.函数不介意传递进来多少个参数,也不在乎传进来的参数是什么数据类型,甚至可以不传参数. arguments javascri ...

  8. [Algorithm] Check if a binary tree is binary search tree or not

    What is Binary Search Tree (BST) A binary tree in which for each node, value of all the nodes in lef ...

  9. ASP入门(十四)-FileSystemObject 对象

    File Access 组件中常见的对象有 FileSystemObject.TextStream.File.Folder.Drive等,其中每一个对象都有不同的属性和方法,我们将会在用到的时候进行详 ...

  10. 在sublime text2上安装xdebug

    目录 安装Xdebug extension 设定php.ini 安装Xdebug plugin for Sublime Text2 1.安装Xdebug extension 先从安装Xdebug开始, ...