mysql开启binlog日志

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql开启binlog日志相关的知识,希望对你有一定的参考价值。

mysql-5.7.18-winx64 开启不了binlog功能。

SHOW VARIABLES LIKE 'log_bin';
log_bin OFF

是怎么回事呢?

mysqlbinlog 是将 binlog 解析成可读可执行的 SQL 的重要工具。

但解析体积较大的 binlog 时,如何查看 mysqlbinlog 的执行进度就变成了一个问题,mysqlbinlog 并未提供 –progress 这样的参数。

那要怎么查看 mysqlbinlog 的解析进度?

实验

我们在 实验 08 中介绍了如何生成随机数据。可以利用其中技巧,生成较大的 binlog,我们忽略这个过程。

从已有的 binlog 开始,bin.000002 大约有 1.1 个 G:

请点击输入图片描述

用 mysqlbinlog 解析该 binlog:

请点击输入图片描述

大概会执行 4.6 秒左右。大家仔细做实验时,可以将 binlog 放大一些,让执行实验更长一些。

我们在 mysqlbinlog 解析时,查看其文件句柄:

请点击输入图片描述

可以看到 mysqlbinlog 用句柄 3 读取 binlog。(我们暂时忽略句柄 4 指向的临时文件,其涉及到了行格式的解析过程,我们安排在以后的实验中慢慢介绍)

获取了 mysqlbinlog 处理文件句柄 3 的进度,就可以大概估算 mysqlbinlog 的整体进度:

请点击输入图片描述

可以看到 mysqlbinlog 此时的进度大概是 600M 左右,整体进度估算为 54%。

结论

我们无法让 mysqlbinlog 直接输出进度,于是通过观察 mysqlbinlog 对 binlog 的读取进度,估算mysqlbinlog 的整体处理进度。

参考技术A

    mysql开启binlog日志

    mysql有以下几种日志:错误日志:    -log-err查询日志:    -log慢查询日志:   -log-slow-queries更新日志:     -log-update二进制日志: -log-bin在mysql的安装目录下,打开my.ini,在后面加上上面的参数,保存后重启mysql服务就行了

mysql开启binlog日志和慢查询日志

1)首先,为什么要开启binlog日志和慢查询日志呢?

binlog日志会记录下数据库的所以增删改操作,当不小心删除、清空数据,或数据库系统出错,这时候就可以使用binlog日志来还原数据库,简单来说就是一个记录备份的东西

慢查询日志 slow_query_log,这个东西是用来记录查询比较慢的sql语句,通过查询日志来查找哪条sql语句比较慢,然后就可以进行数据库或sql语句或程序上的优化,简单来说就是一个优化辅助工具

 

PS:binlog日志应该一直开着(因为你不知道数据库哪一天会崩掉,或者哪天会误删一点东西),慢查询日志平时可以不开,当觉得网站运行慢,需要优化的话,可以打开慢查询来做一个辅助

 

2)开启binlog日志的方法

在my.cnf的[mysqld]下添加一个binlog配置就可以了(注意一定要加在[mysqld]下,如果加在[mysqld_safe]或其他位置下是不行的),配置如下:

log-bin=mysql-bin

PS:这上面的mysql-bin其实就是binlog日志文件的前缀来着,像上面设置的是mysql-bin(你可以改成mysql_bin或binlog或其他什么都可以),它就会在/var/lib/mysql/(默认位置)生成 mysql-bin.000001,mysql-bin.000002,mysql-bin.000003......等日志文件

 

3)开启慢查询日志

修改配置方法一(临时,重启mysqld后自动恢复):

set global log_slow_queries=ON;
set global slow_launch_time=10;

 

修改配置方法二(永久):

在my.cnf的[mysqld]下添加一个binlog配置就可以了(注意一定要加在[mysqld]下,如果加在[mysqld_safe]或其他位置下是不行的),配置如下:

log-slow-queries=/var/log/mysqld-slow.log
long_query_time=2

第一个配置是日志文件位置,第二个配置是慢查询的时间配置(秒),执行时间超过这个时间的查询语句会被记录下来

 

以上是关于mysql开启binlog日志的主要内容,如果未能解决你的问题,请参考以下文章

mysql开启binlog日志

mysql ,binlog 日志查询

mysql ,binlog 日志查询

linux开启MySQL binlog日志

mysql开启binlog日志和慢查询日志

mysql开启binlog日志和慢查询日志