本文由秀依林枫提供友情赞助,首发于烂泥行天下

1、基础知识

日志是把数据库的每一个变化都记载到一个专用的文件里,这种文件就叫做日志文件。mysql默认只开启错误日志,因为过多的日志将会影响系统的处理性能。

在mysql5.0以前版本支持文本格式和二进制格式的日志,但是在mysql5.0后版本就只支持二进制格式的日志。因为二进制日志在性能、信息处理等方面有更多的优点。

2、启用mysql二进制日志

mysql二进制日志由配置文件my.cnf的log-bin选项负责启用的。

mysql服务器默认会在数据根目录创建两个新文件:XXX-bin.000001和XXX-bin.index。若配置选项没有给出文件名,mysql将使用mysql-bin来命名这两个文件,其中.index文件包含一份完整的日志文件清单。如下:

cat /etc/my.cnf

ll /usr/local/mysql/data/

cat /usr/local/mysql/data/mysql-bin.index

mysql会把用户对所有数据库的内容和结构的修改情况记入XXX-bin.n文件,但是不会记录SELECT和没有实际更新的UPDATE语句。

当然我们也可以同过相关命令查询,mysql是否已经开启binlog日志。如下:

show variables like 'log_%';

3、binlog日志文件的生成

当mysql停止或重启时,服务器会把日志文件记入下一个日志文件,mysql会在重启时生成一个新的日志文件,文件序号依次递增。

如果日志文件超过max_binlog_size(在my.cnf文件中配置)系统变量配置的上限时,也会生成新的日志文件。

除此之外,如果在mysql命令中执行flush logs命令也会生成新的日志文件。

4、查看系统中的binlog日志

查看系统中的binlog日志,使用show master logs命令。如下:

show master logs;

5、查看binlog日志文件

mysql提供了mysqlbinlog命令来查看日志文件,在记录每条变更日志的时候,日志文件都会把当前时间给记录下来,以便进行数据库恢复。如下:

mysqlbinlog mysql-bin.000001| more

6、使用binlog日志进行数据库恢复

如果遇到灾难事件,应该用最近一次制作的完整备份恢复数据库,然后使用备份之后的binlog日志件把数据库恢复到最接近现在的可用状态。

使用binlog日志进行恢复时需要依次进行,即最早生成的日志文件要最先恢复。恢复数据的命令格式如下:

mysqlbinlog xxx-bin.000001|mysql -u root –p password dataname

有关使用binlog进行数据库的恢复,我会以后的文章进行详细介绍。

7、binlog命令行参数详解

log-bin [=file_name] 此参数表示启用binlog日志功能,并可以定制路径名称,默认为mysql-bin。

binlog_format 此参数配置binlog的日志格式,默认为mixed。

max_binlog_size此参数配置binlog的日志最大值,最大和默认值是1GB。

max_binlog_cache_size此参数表示binlog使用最大内存的数。

binlog-do-db=db_name 此参数表示只记录指定数据库的二进制日志。

binlog-ignore-db=db_name此参数表示不记录指定的数据库的二进制日志。

expire_logs_days 此参数表示binlog日志保留的时间,默认单位是天。

my.cnf配置文件有关binlog配置如下:

cat /etc/my.cnf |grep -v ^#|grep -v ^$

8、删除binlog日志

8.1删除部分binlog日志

删除binlog部分日志,我们可以日志名称和日志生成的时间来进行删除。删除命令如下:

purge {master|binary} logs to 'log_name';

根据日志名称删除,只删除log_name之前的日志,log_name本身不会被删除。

通过上图我们可以看到,mysql-bin.000003之前的日志已经被全部删除。

purge {master|binary} logs before 'date’;

根据日志生成的时间删除,只删除date之前的日志,date本身不会被删除。

8.2删除全部binlog日志

删除之前所有的binlog日志,并重新生成新的binlog,后缀从000001开始。使用命令:

reset master;

烂泥:学习mysql的binlog配置的更多相关文章

  1. 烂泥:学习mysql数据库主从同步复制原理

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 说明本篇文章部分转载自互联网. MySQL的Replication(英文为复制)是一个多MySQL数据库做主从同步的方案,特点是异步复制,广泛用在各种对 ...

  2. 【Mysql学习笔记】浅析mysql的binlog

    最近读一份关于“数据库事务故障恢复"的技术资料,发现对mysql的binlog的认识不够清楚,查阅mysql reference manual有所收获,作为笔记,记录于此. 1. What' ...

  3. 菜鸟的《Linux程序设计》学习——MySQL数据库安装、配置及基本操作

    1. MySQL数据库: 在涉及到一些大型的Web系统或者嵌入式软件的开发时,都少不了用数据库来管理数据.在Windows操作系统下,使用过各种各样的数据库,如:sqlServer.Oracle.My ...

  4. Dubbo入门到精通学习笔记(十九):MySQL源码编译安装、MySQL主从复制的配置

    文章目录 MySQL 源码编译安装(CentOS-6.6+MySQL-5.6) 一.服务器配置: 二.源码安装 MySQL5.6.26: MySQL主从复制的配置 环境 依赖课程 MySQL 主从复制 ...

  5. MySQL复制(二)--基于二进制日志文件(binlog)配置复制

    基础环境:   主库 从库 服务器IP地址 192.168.10.11 192.168.10.12 版本 5.7.24 5.7.24 已存在的数据库 mysql> show databases; ...

  6. MySQL的binlog有啥用?谁写的?在哪里?怎么配置

    目录 一.唠嗑 二.什么是bin log? 三.它在哪里? 四.bin log的相关配置 五.binlog 有啥用? 六.超有用的参数 sql_log_bin 七.未来几篇文章 推荐阅读 一.唠嗑 文 ...

  7. mysql binlog配置详解

    关闭binlog,注释掉mysql配置文件中的log-bin=mysql-bin即可     baidu zone - 关闭binlog方法   cnblogs - linux下mysql配置文件my ...

  8. 烂泥:mysql帮助命令使用说明

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 在安装.管理和使用mysql过程中,你是不是需要记忆很多的mysql命令.而且对于新手来说,很不多的命令不知道该如何应用,对于老手来说很多命令时间长了忘 ...

  9. MySQL的binlog恢复(Windows下)

    前言 在最近的工作中,由于自己粗(zuo)心(si)误update操作导致几百行的数据出现错误,在心急如焚的同时(那时候我竟然不知道除了备份之后还有binlog日志恢复)立马查资料学习binlog的恢 ...

随机推荐

  1. Monkey测试3——Monkey测试结果分析

    Monkey测试结果分析 一. 初步分析方法: Monkey测试出现错误后,一般的差错步骤为以下几步: 1. 找到是monkey里面的哪个地方出错 2. 查看Monkey里面出错前的一些事件动作,并手 ...

  2. 一:【nopcommerce系列】Nop整体架构的简单介绍,在看nop代码之前,你需要懂哪些东西

    首先,我看的是Nop 3.80,最新版 百度资料很多,Nop用到的主要的技术有: 1.Mvc,最新版用的是 5.2.3.0 2.entity framework 3.autofac 4.插件化 5.( ...

  3. Visual Studio Code 使用 ESLint 增强代码风格检查

    前言 在团队协作开发中,为了统一代码风格,避免一些低级错误,应该设有团队成员统一遵守的编码规范.很多语言都提供了Lint工具来实现这样的功能,JavaScript也有类似的工具:ESLint.除了可以 ...

  4. js 内存小记

    其实不知道怎么起这篇blog的题目了 其实只要涉及的内容是内存泄漏的问题,也有内存管理的一些知识,把学习的过程拿来分享 垃圾回收机制 js具有自动的垃圾收集机制,它会找出那些不在继续使用的变量然后释放 ...

  5. [deviceone开发]-直播APP心形点赞动画示例

    一.简介 这个示例展示do_Animator组件的简单使用,通过点击"点赞"按钮,不断弹出心形图片,向上动画漂移到顶部消失.间隔时间和上下左右移动的步长都是一定范围的随机值. 二. ...

  6. IP查询接口地址

    腾讯的: http://fw.qq.com/ipaddress直接返回本机的IP地址对应的地区 新浪的:http://counter.sina.com.cn/ip?ip=IP地址返回Js数据,感觉不是 ...

  7. DOM事件类型详解

    一.表单事件: input事件当<input>.<textarea>的值发生变化时触发.此外,打开contenteditable属性的元素,只要值发生变化,也会触发input事 ...

  8. Linux中的硬链接和软链接

    软链接和硬链接 命令ln ln是创建链接的命令: 创建硬链接:ln file link 创建软链接:ln -s file link 硬链接 硬链接(hard link)是Unix系统最早的创建链接的方 ...

  9. android 比较完善json请求格式

    public static String getHttpText(String url) { if (MyApplication.FOR_DEBUG) { Log.i(TAG, "[getH ...

  10. Android Activity生命周期详讲

    管理 Activity 生命周期 通过实现回调方法管理 Activity 的生命周期对开发强大而又灵活的应用至关重要. Activity 的生命周期会直接受到 Activity 与其他 Activit ...