学习mysql日志功能话一定要……


一定要看我这篇博客。

日志/log的功能目标是

  1. 诊断、故障排除
  2. 还原真相

关于日志存储的一般建议

日志存储最好和数据存储分开来,否则很可能发生“一荣俱荣,一损俱损的状况”——发生极端意外情况的时候,数据没了,日志也没了(摊手)。

日志分类

  1. 错误日志
  2. 慢日志
  3. 二进制日志
  4. 查询日志

错误日志

错误日志,记录用户登录和服务启动出错相关的信息,

  • 默认是开启的
  • 默认存放在数据存放目录下
  • 默认文件名为 主机名.err
    在配置文件中可以指定错误日志的路径
vim /etc/my.cnf
log-error=/var/log/mysql/mysql.log

需要确认目标用户具备读写mysql.log的权限。

错误日志文件默认记录的数据

  1. 登录失败
  2. 配置文件出错
  3. 启动过程出问题

慢日志

慢日志用来记录消耗时间比较长的SQL语句,为数据库性能提升提供了线索。
slow_query_log默认情况下是关闭的。

开启慢日志并设置相应参数

开启慢日志

slow_query_log=1

配置参数。eg:SQL语句执行时间超过10ms就记录入慢日志

long_query_time=0.001

配置慢日志存储位置,eg:

slow_query_log_file=/var/log/mysql_slow.log

通用查询日志

优点:会记录所有的SQL操作。
缺点:消耗大量的磁盘空间、消耗CPU、内存等资源。

开启通用查询日志

使用mysql命令临时开启通用查询日志

mysql> set global general_log=1;

二进制日志binary_log

二进制日志文件使用的二进制数据存储的,不能使用tail、head等命令查看。

mysql实例

为了每一个应用程序分别跑一个mysqld进程,每一个mysqld进程就是一个实例。

开启二进制日志

二进制日志不能在mysql客户端中临时开启,只能在my.cnf文件中开启。
开启二进制日志

log_bin=1

使用主从复制功能的时候,需要配置二进制日志,master机器配置如下

server_id=1

查看二进制日志的方法

查看二进制日志需要使用 mysqlbinlog 命令,这个命令在mysql的bin目录下,可以使用-vv参数更好的阅读二进制日志,eg:

mysqlbinlog -vv /var/log/1.000001

在这里插入图片描述

需要注意的是 create 描述的是某次操作,200814 16:07:32 描述的是操作的时间点,end_log_pos 可以帮助我们定位操作。这些参数在备份恢复和主从复制的实现中都很有用。

查看当前二进制文件和操作位置的命令是:

show master status

tips

使my.cnf配置生效,需要kill原来的守护进程和工作进程,重启mysql服务。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值