本文首发于烂泥行天下。

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 烂泥,烂泥:学习mysql的binlog配置相关推荐

  1. mysql 烂泥_烂泥:学习mysql的binlog配置

    本文首发于烂泥行天下. 1.基础知识 日志是把数据库的每一个变化都记载到一个专用的文件里,这种文件就叫做日志文件.mysql默认只开启错误日志,因为过多的日志将会影响系统的处理性能. 在mysql5. ...

  2. mysql dba系统学习(18)mysql主从复制的实现 mysql dba系统学习(19)配置mysql+lvs+keeplived实现Mysql读操作的负载均衡

    mysql主从复制的实现 1.MySQL复制的实现原理 MySQL支持单向.双向复制.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入一个二进制日志文 ...

  3. mysql dba系统学习(19)配置mysql+lvs+keeplived实现Mysql读操作的负载均衡

    配置mysql+lvs+keeplived实现Mysql读操作的负载均衡 环境: test1192.168.46.131master test2192.168.46.130slave备份test库 t ...

  4. mysql root dengru_Mysql学习Mysql中文汉字转拼音的实现(每个汉字转换全拼)

    <Mysql学习Mysql中文汉字转拼音的实现(每个汉字转换全拼)>要点: 本文介绍了Mysql学习Mysql中文汉字转拼音的实现(每个汉字转换全拼),希望对您有用.如果有疑问,可以联系我 ...

  5. mysql errno 1146_Mysql学习MySQL复制出错 Last_SQL_Errno:1146的解决方法

    <MysqL学习MysqL复制出错 Last_sql_Errno:1146的解决方法>要点: 本文介绍了MysqL学习MysqL复制出错 Last_sql_Errno:1146的解决方法, ...

  6. 学习linux要会mysql吗_linux 学习 mysql安装到连接

    初始化和配置 顺序执行以下语句 mysqld mysqld --initialize --user=mysql mysqld --initialize --lower-case-table-names ...

  7. mysql 基础(学习mysql必看)

    Mysql基础 Mysql是一种cs架构的系统. 其中s是:存放mysql数据库的机器,上面运行着mysqld服务,用来监听客户端的访问,并把结果返回给客户端 c是:客户端机器,用来访问mysql服务 ...

  8. django连接mysql数据库_Django学习笔记(4)——Django连接数据库

    前言 在MVC或者MTV设计模式中,模型(M)代表对数据库的操作.那么如何操作数据库呢?本小节就认真学习一下.首先复习一下Django的整个实现流程 ,然后再实现一下使用数据库的整个流程,最后学习一下 ...

  9. 小白学习MySQL - 增量统计SQL的需求

    这篇文章在爱可生开源社区首发<技术分享 | MySQL中一个聚类增量统计 SQL 的需求>. 同事提了一个MySQL数据库中SQL增量统计的问题,我用测试数据模拟一下,测试表tt有三个字段 ...

最新文章

  1. Mac 技术篇-苹果笔记本休眠启动后WIFI连接转圈卡死置灰不可用解决方法,mac通过终端杀进程实例演示
  2. yii2 mysql between_yii2:多条件多where条件下碰到between时,between语句如何处理呢?
  3. 《软件工程》 教 学 大 纲
  4. Equals 和 == 的区别
  5. JQuery选择器及radio,checkbox,select取值和反选
  6. GitHub+Vue自动化构建部署
  7. 移动web-触摸事件touch
  8. python soup findall_Python之BeautifulSoup常用详细使用
  9. 随想录(gcc生成的中间语言、汇编代码)
  10. 019-批量修改redis TTL和批量删除key
  11. 2022年新版YOLO解读(PP-YOLOE)
  12. ASP.NET的gridview设置数据格式DataFormatString(链接)
  13. 「一本通 4.5 例 1」树的统计(树链剖分)
  14. 全球和国产十大AI芯片
  15. 小米盒子3增强版 android,小米盒子3增强版拆机评测 怎么样?好不好?
  16. 苹果电脑退出ID账号的方法
  17. 哪里有免费的ASP空间?
  18. 计算机共享的媒体设备,多台计算机、手机和平板电脑中共享对文件和媒体的访问时怎么做...
  19. android 7 audio架构,GitHub - zozo825117/ble_audio_android: android audio框架
  20. PS导出灰度图到Unity内并生成地形

热门文章

  1. android培训学习班,常州android培训学习班
  2. 昂达v80 plus linux,昂达(ONDA)V80 Plus平板电脑整体性能评测-ZOL中关村在线
  3. WinForm PictureBox加载图片方法
  4. 使用mybatis注解实现模糊查询
  5. Python基础知识点
  6. 上海交通大学计算机学院录取分数线,湖南省多少名可以进上海交大?附上海交通大学近三年录取分数线...
  7. java题算工资_Java模版方法的小练习——工资系统
  8. 一键部署jumpserver
  9. Servlet中的Response(HTTP响应对象)用法及笔记
  10. Linux搭建迅搜( Xunsearch )