网站搜索

MySQL日志级别


本教程将探讨如何在MySQL服务器中启用和配置各种日志级别。这决定了日志消息在服务器中是如何创建的。

MySQL日志

根据安装的 MySQL 服务器和配置,MySQL 将创建一个记录服务器事件的日志文件。

MySQL 服务器支持五种类型的日志文件。这些包括:

  1. 错误日志 - 此日志文件包含在启动、运行或停止MySQL服务器时遇到的错误日志。
  2. ISAM 日志 – 这是管理日志级别工具的一部分。该日志包含对 ISAM 表所做的所有修改。
  3. 查询日志 – 正如名称所示,此日志文件包含用户连接和执行的查询记录。
  4. 二进制日志 - 保存修改服务器的语句日志。mysqldbinlog 工具负责处理此日志记录。
  5. 慢查询日志 – 记录超过 long_query_time 参数值的查询日志。

注意: 请记住,上述讨论的一些日志用于内部 MySQL 操作。作为普通用户,许多 MySQL 提供商可能会将各种日志进行抽象化处理。

在本次教程中,我们只需要了解错误日志、常规/查询日志和慢日志。

我的SQL启用日志记录

在配置 MySQL 中的各种日志记录级别之前,我们必须确保 MySQL 服务器已启用日志记录功能。

首先,找到并编辑 MySQL 配置文件。

请注意,MySQL 配置文件的位置可能因系统配置、安装方法、操作系统等因素而有所不同。

sudo nano /etc/mysql/my.cnf

在日志文件中,添加如下条目:

[mysqld]
log_error=/var/log/mysql/error.log
general_log_file= /var/log/mysql/mysql.log
general_log = 1
log_slow_queries= /var/log/mysql/mysql-slow.log
long_query_time=10

上述配置启用了错误日志、常规日志和慢日志。此外,您可以通过在上述配置中指定目标路径来更改日志文件的位置。

保存更改并继续重新启动服务器。

在Windows中,您可以通过编辑my.ini文件并使用以下选项来启用MySQL日志记录。

general-log=1
general_log_file="mysql.log"
slow-query-log=1
slow_query_log_file="mysql-slow.log"
long_query_time=10
log-error="mysql.err"

同样,您可以根据自己的喜好更改日志文件的路径和文件名。默认情况下,MySQL 将在数据目录中存储日志文件(仅限 Windows)。

MySQL 日志级别

MySQL 支持多达八个日志级别。每个级别决定了日志文件中包含的细节和消息类型。

默认情况下,MySQL shell 的日志级别将运行在 5。这包括错误、警告和信息消息。

以下是支持的日志级别及其含义。

日志级别(数字)日志级别操作冗长程度
1
None
日志记录已禁用
2
Internal
内部错误1
3
Error
错误1
4
Warning
警告1
5
Info
信息的1
6
Debug
调试2
7
Debug2
调试23
8
Debug3
调试34

在启动 MySQL shell 时,您可以使用 –verbose 参数配置详细级别。

  1. 详细级别 0 - 不显示任何消息.
  2. 等级 1 – 内部错误、错误、警告和信息消息。
  3. 等级 2 - 包含所有等级 1 消息和调试消息。
  4. 等级 3 – 在等级和等级 2 中添加 Debug2 消息。
  5. 等级 4 – 添加 Debug3 消息。这些消息包括高度详细的日志信息。

在终端指定MySQL日志级别

要指定您希望使用的日志级别,我们可以使用如下的 mysqlsh 命令:

mysqlsh --log-level=6

您可以将日志级别指定为数字值或其字符串表示形式,如:

mysqlsh --log-level=debug

注意: 在Windows中,mysqlsh命令位于“C:\Program Files\MySQL\MySQL Shell 8.0\bin”。

要查看当前日志级别,请打开您的 MySQL Shell:

mysqlsh

进入终端后,运行命令:

MySQL  JS > \option -l

这应该列出 MySQL Shell 选项,包括当前日志级别:

结束

就这样;您已成功掌握了如何使用 MySQL 日志选项。请注意,MySQL 日志选项的范围超出了本教程的范围。您可以查阅文档以获取更多信息。