zoukankan      html  css  js  c++  java
  • 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



    作者:关小涛
    学习和分享是博客最大的乐趣,欢迎大家取之所需。
    努力是自己努力的原因,每周天写博客总结工作中的新技能和出现的问题
  • 相关阅读:
    HDU 1495 非常可乐
    ja
    Codeforces Good Bye 2016 E. New Year and Old Subsequence
    The 2019 Asia Nanchang First Round Online Programming Contest
    Educational Codeforces Round 72 (Rated for Div. 2)
    Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises)
    AtCoder Regular Contest 102
    AtCoder Regular Contest 103
    POJ1741 Tree(点分治)
    洛谷P2634 [国家集训队]聪聪可可(点分治)
  • 原文地址:https://www.cnblogs.com/XtsLife/p/11014758.html
Copyright © 2011-2022 走看看