MySQL日志级别
本教程将探讨如何在MySQL服务器中启用和配置各种日志级别。这决定了日志消息在服务器中是如何创建的。
MySQL日志
根据安装的 MySQL 服务器和配置,MySQL 将创建一个记录服务器事件的日志文件。
MySQL 服务器支持五种类型的日志文件。这些包括:
- 错误日志 - 此日志文件包含在启动、运行或停止MySQL服务器时遇到的错误日志。
- ISAM 日志 – 这是管理日志级别工具的一部分。该日志包含对 ISAM 表所做的所有修改。
- 查询日志 – 正如名称所示,此日志文件包含用户连接和执行的查询记录。
- 二进制日志 - 保存修改服务器的语句日志。mysqldbinlog 工具负责处理此日志记录。
- 慢查询日志 – 记录超过 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 | | 日志记录已禁用 | |
| 2 | | 内部错误 | 1 |
| 3 | | 错误 | 1 |
| 4 | | 警告 | 1 |
| 5 | | 信息的 | 1 |
| 6 | | 调试 | 2 |
| 7 | | 调试2 | 3 |
| 8 | | 调试3 | 4 |
在启动 MySQL shell 时,您可以使用 –verbose 参数配置详细级别。
- 详细级别 0 - 不显示任何消息.
- 等级 1 – 内部错误、错误、警告和信息消息。
- 等级 2 - 包含所有等级 1 消息和调试消息。
- 等级 3 – 在等级和等级 2 中添加 Debug2 消息。
- 等级 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 日志选项的范围超出了本教程的范围。您可以查阅文档以获取更多信息。
