• 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



    作者:关小涛
    学习和分享是博客最大的乐趣,欢迎大家取之所需。
    努力是自己努力的原因,每周天写博客总结工作中的新技能和出现的问题
  • 相关阅读:
    Python札记 装饰器
    Python与SQLite日期时间函数的使用
    Python札记 文件校验
    Python札记 参数魔法
    JAVA操作图片裁切与缩放的一个工具类
    java对象的序列化和反序列化
    Apache MINA 初识
    在Java 7里如何对文件进行操作
    Calendar时间获取明细
    使用ViewPager实现欢迎页面左右拖动效果
  • 原文地址:https://www.cnblogs.com/XtsLife/p/11014758.html
Copyright © 2020-2023  润新知