让我们了解有关 MySQL 的客户端日志记录。 mysql 客户端可以对执行的语句执行不同类型的日志记录,并且可以交互方式进行记录 -
UNIX - 日志记录
在 Unix 上,mysql 将语句写入历史文件。默认情况下,该文件在用户主目录中命名为 .mysql_history。要指定不同的文件名,必须设置 MYSQL_HISTFILE 环境变量的值。
如果给出 --syslog 选项,mysql 会将语句写入各种平台上的系统日志记录工具。在 Unix 上,这称为 syslog。
Windows - 日志记录
在 Windows 上,这称为 Windows 事件日志。记录消息出现的目的地取决于系统。例如,在 Linux 上,目标通常是 /var/log/messages 文件。
日志记录如何发生?
让我们了解日志记录如何发生 -
对于每个启用的日志记录目标,语句日志记录如下所述发生 -
语句仅在交互执行时才会被记录。从文件或管道中读取语句时,它们是非交互式的。可以借助 --batch 或 --execute 选项来抑制语句日志记录的操作。
如果语句与存在的模式匹配,则语句将被忽略且不会被记录在“忽略”列表中。
mysql 单独记录每个非忽略、非空语句行。
如果非忽略的语句跨越多行,并且不包含终止分隔符,则 mysql 将连接这些行以形成完整的语句,并将换行符映射到空格,并记录结果以及分隔符。