MySQL 中有四类日志,分别是:
- 二进制日志(Binary Log):记录所有对数据库数据进行更改的操作。这些更改可以是插入、更新或删除操作等。可以通过这些日志实现数据复制和恢复。
- 错误日志(Error Log):记录 MySQL 服务器出现错误和警告的信息。例如,如果 MySQL 由于某种原因而关闭,则可能会在此日志中记录该事件。
- 慢查询日志(Slow Query Log):记录执行时间超过指定时间阈值的 SQL 查询语句。通过分析慢查询日志,可以优化查询性能。
- 查询日志(General Query Log):记录每个 MySQL 连接上执行的所有 SQL 命令。通常情况下,这些日志用于调试和安全审计。
- 二进制日志
启用二进制日志可以记录所有对数据库数据进行更改的操作。例如,可以在主服务器上启用二进制日志,并将数据复制到备份服务器。这样,在主服务器上进行的所有更改都会被记录下来,并在备份服务器上自动重放。
启用二进制日志需要在 MySQL 配置文件中进行设置。可以通过以下命令查看当前是否已启用二进制日志:
SHOW VARIABLES LIKE 'log_bin';
如果结果为 ON,则表示已启用二进制日志。要查看已记录的二进制日志,请运行以下命令:
SHOW BINARY LOGS;
- 错误日志
错误日志记录 MySQL 服务器出现错误和警告的信息。例如,如果 MySQL 由于某种原因而关闭,则可能会在此日志中记录该事件。可以通过以下命令查看错误日志文件的位置:
SHOW VARIABLES LIKE 'log_error';
要查看最近的错误和警告,请运行以下命令:
SHOW ERRORS;
- 慢查询日志
启用慢查询日志可以记录执行时间超过指定时间阈值的 SQL 查询语句。通过分析慢查询日志,可以优化查询性能。要启用慢查询日志,请在 MySQL 配置文件中进行设置。以下是一个示例配置:
slow_query_log = ON
slow_query_log_file = /var/log/mysql/slow-query.log
long_query_time = 10
上述配置将启用慢查询日志,将记录写入 /var/log/mysql/slow-query.log 文件中,并将超过 10 秒的查询记录下来。
要查看最近的慢查询,请运行以下命令:
SHOW SLOW QUERIES;
- 查询日志
查询日志记录每个 MySQL 连接上执行的所有 SQL 命令。可以通过以下命令启用查询日志:
SET GLOBAL general_log = 'ON';
然后可以使用以下命令查看查询日志文件的位置:
SHOW VARIABLES LIKE 'general_log_file';
要停止记录查询日志,请运行以下命令:
SET GLOBAL general_log = 'OFF';