zoukankan      html  css  js  c++  java
  • MySQL日志

    13.1 日志简介

    MySQL日志主要分为4类
    ● 错误日志,记录MySQL服务的启动、运行或停止MySQL服务时出现的问题。
    ● 查询日志,记录建立的客户端连接和执行的语句。
    ● 二进制日志,记录所有更改数据的语句。可以用于数据复制。
    ● 慢查询日志,记录所有执行时间超过long_query_time秒的所有查询或不使用索引的查询。

    13.2 二进制日志

    13.2.1 启动和设置二进制日志

    默认情况下,二进制日志是关闭的。可以通过修改MySQL的配置文件来启动和设置二进制日志。my.ini中[mysqld]组下面有几个设置是关于二进制日志的:
    [mysqld]
    log-bin [=path/ [filename] ]
    expire_logs_days = 10
    max_binlog_size = 100M

    13.2.2 查看二进制日志

    show binary logs语句可以查看当前的二进制日志文件个数及其文件名。
    MySQL二进制日志并不能直接查看,如果要查看日志内容,可以通过mysqlbinlog命令查看。

    13.2.3 删除二进制日志

    1.使用RESET MASTER语句删除所有二进制日志。
    2.使用PURGE MASTER LOGS语句删除指定的日志文件。

    v13.2.4 使用二进制日志还原数据库

    如果MySQL服务器启用了二进制日志,在数据库出现意外丢失数据时,可以使用mysqlbinlog工具从指定的时间点开始(例如,最后一次备份)直到现在或另一个指定的时间点的日志中恢复的数据。

    13.2.5 暂时停止二进制日志功能

    通过SET SQL_LOG_BIN语句可以使用MySQL暂停或者启动二进制日志。
    暂停二进制日志:SET sql_log_bin = 0;
    恢复二进制日志 : SET sql_log_bin = 1;

    13.3 错误日志

    13.3.1 启动和设置错误日志

    在默认情况下,错误日志会记录到数据库的数据目录下。如果没有在配置文件中指定文件名,则文件名默认为hostname.err。
    [mysqld]
    log-error=[path / [file_name] ]

    13.3.2 查看错误日志

    通过错误日志可以监视系统的运行状态,便于及时发现故障和修复故障。MySQL错误日志是以文本文件形式存储的,可以使用文本编辑器直接查看MySQL错误日志。
    SHOW VARIABLES LIKE 'log_error';

    13.3.3 删除错误日志

    MySQL的错误日志是以文本文件的形式存储在文件系统中。可以直接删除错误日志文件。
    mysqladmin -u root -p flush-logs

    13.4 通用查询日志

    13.4.1 启动和设置通用查询日志

    打开通用查询日志,在my.ini(或my.cnf)的[mysqld]组下加入log选项。
    [mysqld]
    log[=path / [filename]]

    13.4.2 查看通用查询日志

    通用查询日志是以文本文件的形式存储在文件系统中的。可以使用文本编辑器直接打开通用日志文件进行查看,Windows下可以使用记事本,Linux下可以使用vim和gedit等。

    13.4.3 删除通用查询日志

    可以用直接删除日志文件的方式删除通用查询日志。
    重新建立新的通用查询日志文件:
    mysqladmin –u root –p flush-logs

    13.5 慢查询日志

    13.5.1 启动和设置慢查询日志

    MySQL中慢查询日志默认是关闭的,可以通过配置文件my.ini或者my.cnf中的log-slow-queries选项打开,也可以在MySQL服务启动的时候使用--log-slow-queries[=file_name]启动慢查询日志。
    [mysqld]
    log-slow-queries[=path / [filename] ]

    13.5.2 查看慢查询日志

    MySQL的慢查询日志是以文本形式存储的,可以直接使用文本编辑器查看。
    【例13.10】查看慢查询日志。使用文本编辑器打开数据目录下的Kevin-slow.log文件,文件部分如下:
    C:Program FilesMySQLMySQL Server 5.7inmysqld, Version: 5.7.22-log (MySQL Community Server

    13.5.3 删除慢查询日志

    慢查询日志也可以直接删除。删除后在不重启服务器的情况下。
    重新生成慢查询日志文件:
    mysqladmin –u root –p flush-logs
    flush logs

    13.6 MySQL 8.0的新特性——日志分类更详细

    在MySQL 8.0版本中,日志分类将更加详细。例如在错误信息中添加了错误信息编号[MY-010311]和错误所属子系统[Server]。
    在MySQL 8.0版本中,部分错误日志如下:

    MySQL 8.0

    2018-06-21T17:53:13.040295+08:00 28 [Warning] [MY-010311] [Server] 'proxies_priv' entry '@ root@localhost' ignored in --skip-name-resolve mode.
    2018-06-21T17:53:13.040520+08:00 28 [Warning] [MY-010330] [Server] 'tables_priv' entry 'user mysql.session@localhost' ignored in --skip-name-resolve mode.

    13.7 综合案例——MySQL日志的综合管理

    本章详细介绍了MySQL日志的管理。MySQL日志包括:二进制日志、错误日志、通用查询日志和慢查询日志设置等类型。通过本章学习,读者将学会各类日志的启动、查看和删除,以及如何使用二进制日志还原数据库。下面的综合案例将帮助读者建立执行这些操作的能力。

    疑难解惑

    平时因该打开哪些日志

    日志既会影响MySQL的性能,又会占用大量磁盘空间。因此,如果不必要,应尽量少的开启日志。根据不同的使用环境,可以考虑开启不同的日志。例如在开发环境中优化查询效率低的语句,可以开启慢查询日志;如果需要记录用户的所有查询操作,就可以开启通用查询日志,如果需要记录数据的变更,就可以开启二进制日志,错误日志是默认开启的。

    如何使用二进制日志

    二进制日志主要用来记录数据变更。如果需要记录数据库的变化,可以开启二进制日志。基于二进制日志的特性,不仅可以用来进行数据恢复,还可以用于数据复制。在数据库定期备份的情况下,如果出现数据丢失,就可以先用备份恢复大部分数据,然后再用二进制日志恢复最近备份后变更的数据。在双机热备的情况下,可以使用mysql的二进制日志记录数据的变更,然后将变更部分复制到备份服务器上。

    如何使用慢查询日志

    慢查询日志主要用来记录查询时间较长的日志。在开发环境下,可以开启慢查询日志来记录查询时间较长的查询语句,然后对这些语句进行优化。通过配置long_query_time的值,可以灵活的掌握不同程度的慢查询语句。

    努力拼搏吧,不要害怕,不要去规划,不要迷茫。但你一定要在路上一直的走下去,尽管可能停滞不前,但也要走。
  • 相关阅读:
    java中的Set的使用以及各种遍历方法(较为全面)
    系统图标
    监听按钮
    GUI
    【Avalon】获取隐藏元素的尺寸
    Hooks
    特性节点Attribute
    ngCloak
    邮件
    时间
  • 原文地址:https://www.cnblogs.com/wkhzwmr/p/15320379.html
Copyright © 2011-2022 走看看