Mysql日志管理

Mysql日志管理

Mysql日志分为:二进制文件、错误日志、删除日志文件

在Mysql软件所支持的日志文件里。除了二进制文件外,其他日志文件都是文本文件

默认情况下。MySQL软件只会启动错误日志文件,而其他日志文件则需要手动启动才可以被启动。

  • MySQL软件所支持的日志
    • 二进制日志文件:该日志问价会以二进制形式记录数据库的各种操作,但却不记录查询语句
    • 错误日志:该日志文件会记录MySQL服务器启动、关闭和运行时出错等信息。
    • 通用查询日志:该日志记录MySQL服务器的启动和关闭信息,客户端的连接信息、更新数据记录的SQL语句和查询数据记录SQL语句
    • 慢查询日志:记录执行时间超过指定时间的各种操作,通过工具分析慢查询日志可以定位 MySQL服务其性能瓶颈所在。
  • 启动日志后可以实现对服务器进行维护,但是会降低MySQL软件的执行速度

一、操作二进制日志

(一)启动二进制日志

  • 默认情况下,二进制日期是关闭的,如果想启动二进制日志,可以通过设置MySQL服务器的配置文件my.ini来实现
  • 如果mysql数据库意外停止,可以通过二进制日志文件来查看用户执行了哪些操作。对数据库服务器进行了哪些修改,然后根据二进制文件中的记录来恢复数据库服务器
[mysqld]
log-bin[=dir[filename]]
在上述语句中,参数dir用来指定,二进制文件的存储路径,参数filename用来指定二进制文件的文件名,具体的格式为filename.number,其中

eg:
[mysqld]
log-bin=D:mysqlloginlog

(二)查看二进制日志

mysqlbinlog filename.number
在上述命令中,参数filename.number表示所要查看的二进制日志
注意:要进入存放二进制日志的目录,再执行该命令

(三)停止二进制日志

SET SQL_LOG_BIN=0
SET SQL_LOG_BIN=1
当设置SQL_LOG_BIN的值为0时,表示暂停二进制日志功能,当设置SQL_LOG_BIN的值为1时,表示重新开启二进制功能。
注意:只有拥有SUOER权限的用户,才可以执行SET语句

(四)删除二进制日志

RESET MASTER;
执行上述命令可以删除所有二进制文件
PURGE MASTER LOGS TO filename.number
执行上述命令,可以删除编号小于number的所有二进制日志文件
PURGE MASTER LOGS BEFORE 'yyyy-mm-dd hh:MM:ss'
执行上述命令,可以删除指定时间之前所创建的所有二进制日志文件

二、操作错误日志

在MySQL数据库服务器里,错误日志默认是开启的,同时该种类型的日志也是无法被禁止的。

错误日志一般存放在Mysql服务器的数据文件夹下(C:/ProgramFilesMySQL/MySQL Server 5.0 data),错误日志文件通常的名称格式,为hostname.err,其中参数hostname表示MySQL服务器的主机名

(一)启动错误日志

  • 如果想修改错误日志的存放目录,可以通过设置MySQL服务器的配置文件my.ini来实现
[mysqld]
error-bin[dir/[filename]]

(二)查看错误日志

错误日志是以文本文件的形式存储内容,所以可以直接使用普通文本工具来查看该类型的日志内容。

(三)删除错误日志

mysqladmin -u root -p flush-logs

执行上述命令,MySQL首先会创建一个新的错误日志,然后将旧的错误日志更名为filename.err-old。如果数据库管理员认为filename.err-old文件没有任何用处,既没有任何存在的理由,可以直接删除。

三、通用日志查询

通用查询日志主要用来记录用户关于MySQL服务器的所有操作,包含了MySQL服务器的启动和关闭信息,客户端的连接信息,更新数据记录SQL语句和查询数据记录SQL语句。

一般建议关闭此日志,需要时可以通过设置环境变量打开。

(一)启动日志查询

默认情况下,通用查询日志是关闭的,如果想启动通用查询日志,可以通过设置Mysql服务器的配置文件my.ini来实现。

#通过设置my.ini设置文件
[mysqld]
log [=dirfilename]

#通过设置环境变量启动日志
#通过设置环境变量general_log进行通用日志的动态控制,on表示开启
mysql > set global general_log=on;
#查看相关环境变量
mysql > show varibles like '%general_log%' G

四、慢查询日志

主要用来记录执行时间超过指定时间的查询语句,通过查看该类型的日志文件,可以查找到哪些查询语句的执行效率低,以便找出MySQL服务器的性能瓶颈从而进行优化。

(一)启动慢查询日志

默认情况下,慢查询日志是关闭的,如果想启动慢查询日志,可以通过设置MySQL服务器的配置文件my.ini

[mysqld]
log-slow-queries[=dir[filename]]
long_query_time=n

#通过设置环境变量general_log进行通用日志的动态控制,on表示开启
mysql > set global slow_query_log=on;
mysql > set global long_query_time=3;

(二)分析慢查询日志

MySQL提供了对应的工具用于分析MySQL慢查询日志的内容,,对应的工具为mysqldumpslow.pl



作者:关小涛
学习和分享是博客最大的乐趣,欢迎大家取之所需。
努力是自己努力的原因,每周天写博客总结工作中的新技能和出现的问题
原文地址:https://www.cnblogs.com/XtsLife/p/11014758.html