记录MySQL交互查询
MySQL 5.7引入了一个新的选项--syslog,允许将交互式查询写入系统日志。根据MySQL 5.7参考手册中的说明,使用--syslog选项时,日志记录具有以下特性:
- 日志记录级别为“信息”级别,对应于Unix/Linux系统日志功能的LOG_INFO优先级,对应于Windows事件日志的EVENTLOG_INFORMATION_TYPE。具体的日志配置请参考系统文档。
- 信息大小限制为1024字节。
- 日志消息由标识符MysqlClient和以下值组成:
- SYSTEM_USER:系统用户名称(登录名)或--(如果用户未知)。
- MYSQL_USER:MySQL用户名称(使用--user选项指定)或--(如果用户未知)。
- CONNECTION_ID:客户端连接标识符,与会话中的CONNECTION_ID()函数值相同。
- DB_SERVER:服务器主机名或--(如果主机未知)。
- DB:默认数据库名称或--(如果未选择数据库)。
- QUERY:日志记录语句的文本。
下面是在Linux上使用--syslog生成的样本输出。这里的输出格式是为了可读性而进行了格式化;实际上,每条日志消息都占据一行。
Mar 7 12:39:25 myhost MysqlClient[20824]: SYSTEM_USER:'oscar', MYSQL_USER:'my_oscar', CONNECTION_ID:23, DB_SERVER:'127.0.0.1', DB:'--', QUERY:'USE test;'
Mar 7 12:39:28 myhost MysqlClient[20824]: SYSTEM_USER:'oscar', MYSQL_USER:'my_oscar', CONNECTION_ID:23, DB_SERVER:'127.0.0.1', DB:'test', QUERY:'SHOW TABLES;'
如果不想创建别名,还可以将syslog添加到/etc/mysql/my.cnf文件的[mysql]部分或/etc/mysql/conf.d/目录中的文件中。
MySQL 5.7引入了--syslog选项,允许将交互式查询写入系统日志。通过使用--syslog选项,可以按照特定的格式记录查询语句的相关信息。如果不想使用别名,也可以在/etc/mysql/my.cnf文件的[mysql]部分或/etc/mysql/conf.d/目录中的文件中添加syslog配置。这样,就可以将MySQL的交互式查询日志记录到系统日志中。