首页 / 日志 / MySQL5.7二进制日志
MySQL5.7二进制日志
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL5.7二进制日志,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2632字,纯文字阅读大概需要4分钟。
内容图文
二进制日志是MySQL服务器用来记录数据修改事件的,比如INSERT、UPDATE、DELETE等会导致数据发生变化的语句,SELECT语句不会被记录在内。MySQL必须先执行完一条语句才能知道它是否修改了数据,因此写入二进制日志文件的时间是语句执行完成的时间。写入顺序是按语句执行完成的先后顺序,事务中的语句会先被缓存起来,成功提交后才会被写入,回滚则不会被写入。非事务的存储引擎,所有的修改会立刻写入到二进制日志中。 二进制日志顾名思义不是文本而是一种更有效率的二进制格式,它比文本占用更少的空间,但是可读性就很差了,必须使用mysqlbinlog工具才能转换为可读的文本。二进制日志主要用于数据库备份和故障时恢复数据,配置MySQL主从复制必须启用二进制日志。 二进制日志索引文件中会列出所有二进制日志文件,此文件是文本的因此可以直接查看,文件的最后一行就是当前正在使用的二进制日志文件。 启用和关闭 show variables like ‘log_bin‘ 可以查看当前数据库是否已经启用了二进制日志,ON表示启用,OFF表示未启用。show variables like ‘log_bin_basename‘ 返回二进制日志基本文件名,show variables like ‘log_bin_index‘ 返回二进制日志索引文件名。 在MySQL配置文件中,[mysqld]下配置 log_bin 即可开启二进制日志,此时默认使用HOSTNAME-bin作为二进制日志的基本文件名,基本文件名加上一组顺序编号000001、000002...就是二进制日志文件名了,例如localhost-bin.000001。每次启动服务器、执行刷新日志命令(flush logs)以及二进制日志文件到达最大长度的时候,服务器会按顺序号生成下一个二进制日志文件,参数max_binlog_size决定了二进制日志最大长度。log_bin=xx指定了二进制日志基本文件名为xx。默认二进制日志索引文件名是二进制日志基本文件名加上.index,参数 log_bin_index可以指定二进制日志索引文件名,如果指定值没有扩展名,默认会加.index。 关闭二进制日志只要删除相应配置即可。flush logs会关闭当前二进制日志文件并重新创建一个。 格式 二进制日志的格式有STATEMENT、ROW、MIXED,参数binlog_format 决定了使用何种格式。 STATEMENT表示基于语句的格式,就是记录执行的语句,优点是减少了日志量,但是还必须记录执行语句时相关上下文信息,这很容易导致主从复制时语句执行出错。 ROW表示基于行的格式,优点是不用再记录执行语句时的上下文,缺点是增加了记录量,每一条被修改过的行都要被记录,本来只要记录执行时的update语句,现在要记录所有被修改的行的update语句。 MIXED是以上两种混合使用,由MySQL决定何时使用哪一种。 查看 使用mysqlbinlog工具,这个工具一般在MySQL安装目录的bin目录下。执行如下语句 mysqlbinlog -vv --base64-output=decode-rows localhost-bin.000001,也可以重定向到外部文件中 mysqlbinlog -vv --base64-output=decode-rows localhost-bin.000001 >000001.txt。MySQL5.7二进制日志
标签:dex variable 外部 binlog工具 like space select AC 序号
本文系统来源:https://www.cnblogs.com/gjb724332682/p/8610167.html
内容总结
以上是互联网集市为您收集整理的MySQL5.7二进制日志全部内容,希望文章能够帮你解决MySQL5.7二进制日志所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。