zoukankan      html  css  js  c++  java
  • MySQL-快速入门(13)MySQL日志

    1、MySQL的日志。主要分为4类。

      1》二进制日志:记录所有更改数据的语句,可以用于数据复制。

      2》错误日志:记录MySQL服务的启动、运行、停止MySQL服务时出现的问题。

      3》查询日志:记录建立的客户端连接和执行的语句。

      4》慢查询日志:记录所有执行时间超过long_query_time的所有查询或不使用索引的查询。

      当执行一个flush logs语句或执行MySQLadmin flush-logs或MySQLadmin refresh时,将刷新日志。

      启动日志功能会降低MySQL数据库的性能。如在查询非常频繁的MySQL数据库系统中,如果开启了通用查询日志和慢查询日志,MySQL数据库会花费很多的时间记录日志,同时,日志会占用大量的磁盘空间。

    2、二进制日志:只要记录MySQL数据库变化。

      1》启动和设置二进制日志

    二进制日志默认是关闭的
    my.ini中[MySQLd]组下关于二进制日志的设置: log-bin [=path/ [filename]] expire_logs_days=10 max_binlog_size=100M

       2》查看二进制日志

    //查看二进制日志文件个数及文件名
    show binary logs;
    
    //查看二进制日志文件的内容
    MySQLbinlog  filename.0000001

       3》删除二进制日志

    MySQL二进制日志文件可以配置自动删除。同时也提供了手动删除的方法:
    1、使用reset master语句删除所有二进制日志文件
    reset master;
    
    2、使用purge master logs语句删除指定日志文件
    purge {master | binary} logs to 'log_name'   --删除文件名编号比指定文件名编号小的所有日志
    purge {master | binary} logs before 'date'   --删除指定日期以前的所有日志

       4》使用二进制日志恢复数据库

    --使用MySQLbinlog恢复数据
    mysqlbinlog [option] filename |mysql -u user -p pwd

    option:
    --start-date和--stop-date=>指定恢复数据库的起始时间点、结束时间点
    --start-position和--stop-position=>指定恢复数据的起始位置、结束位置

       5》暂时停止二进制日志功能

    set sql_log_bin={0 | 1}

    3、错误日志

       包含了当MySQLd启动和停止、以及服务器在运行过程中发生任何严重错误时的相关信息。默认记录错误日志到数据库目录下,如果没有配置文件的名字,默认为hostname.err。执行flush logs,错误日志文件会被重新加载。

       1》启动和设置错误日志

         错误日志的启动和停止以及指定日志文件名,都可以通过修改my.ini(或mycnf)来配置。错误日志配置项为log-error。在[MySQLd]下配置log-error,则启动错误日志。

    [mysqld]
    log-error=[path / [file_name]]

       2》查看错误日志:日志以文本文件的形式保存

    mysql> show variables like 'log_error';
    +---------------+--------------+
    | Variable_name | Value        |
    +---------------+--------------+
    | log_error     | .LFY-PC.err |
    +---------------+--------------+
    1 row in set, 1 warning (0.00 sec)
    
    mysql>

       3》删除错误日志

    手动删除运行状态下错误日志,MySQL并不会自动创建日志文件。flush logs在重新加载日志的时候,如果文件不存在,则会自动创建
    mysqladmin -u user -p flush-logs
    
    或者
    mysql>flush logs;

    4、通用查询日志

      记录的是MySQL的所有用户操作,包括启动和关闭服务、执行查询和更新语句

      1》启动和设置通用查询日志

    --MySQL默认没有开启通用查询日志
    --默认日志存放在hostname.log
    
    在my.ini或者my.cnf的[MySQLd]组下添加log选项即可开启:
    [mysqld]
    log[=path / [filename]]

      2》查看通用查询日志

         通用日志使用的是文本形式保存。

      3》删除通用查询日志

         可以直接删除日志文件,然后使用 MySQLadmin flush-logs重新创建。

    5、慢查询日志

      记录查询超过执行时间的日志。 

     1》启动和设置慢查询日志

    --默认是关闭的,可以通过MySQL服务启动的时候使用--log-slow-queries[=file_name]启动慢查询日志;
    --也可以通过my.ini或者my.cnf文件配置,这种方式需要指定记录阈值。
    --不指定日志文件名,默认为hostname-slow.log
    --查询时间阈值,n是时间值,单位是秒。没有配置默认是10秒。
    [mysqld]
    log-slow-queries[=path / [filename]]
    long_query_time=n

     2》查看慢查询日志

       文件以文本形式保存。

     3》删除慢查询日志

       直接删除文件,然后使用 MySQLadmin flush-logs重新创建。

  • 相关阅读:
    基于三角形问题通过边界值分析和等价类划分进行黑盒测试
    小程序学习记录【数组操作相关(持续更新)】(1)
    Android实现九宫拼图过程记录
    高维数据Lasso思路
    CannyLab/tsne-cuda with cuda-10.0
    xgboost 多gpu支持 编译
    GDAL2.2.4 C#中的编译及使用
    SqlServer性能优化,查看CPU、内存占用大的会话及SQL语句
    WinForm任务栏最小化
    datatable与实体类之间相互转化的几种方法
  • 原文地址:https://www.cnblogs.com/ZeroMZ/p/11486095.html
Copyright © 2011-2022 走看看