mysql 客户端连接日志_mysql8 参考手册--mysql客户端记录历史操作

mysql客户端记录

在MySQL的客户端可以记录用于交互式执行的语句:

在Unix上,mysql将语句写入历史文件。默认情况下,该文件.mysql_history在您的主目录中命名 。要指定其他文件,请设置MYSQL_HISTFILE环境变量的值 。

在所有平台上,如果给出了--syslog选项,mysql会将语句写入系统日志记录工具。在Unix上,这是 syslog; 在Windows上,它是Windows事件日志。记录的消息出现的目的地取决于系统。在Linux上,目标通常是 /var/log/messages文件。

记录如何发生

对于每个启用的日志记录目标,语句日志记录如下事件:

语句仅在交互式执行时才记录。从文件或管道中读取时,语句是非交互式的。也可以通过使用--batch 或者 --execute选项抑制语句记录。

如果语句匹配“ ignore ”列表中的任何模式,则语句将被忽略并且不会记录。

mysql分别记录每个不可忽略的非空语句行。

如果不可忽略的语句跨越多行(不包括终止定界符),则 mysql将这些行连接起来以形成完整的语句,将换行符映射到空格,并记录结果以及定界符。

因此,跨多行的输入语句可以记录两次。考虑以下输入:

mysql> SELECT

-> 'Today is'

-> ,

-> CURDATE()

-> ;

在这种情况下,mysql将记录 'SELECT','Today is', ' ,',CURDATE()和;,行读取它们。在映射SELECT\n'Today is'\n,\nCURDATE()到SELECT 'Today is' , CURDATE()和分隔符之后,它还会记录complete语句。因此,这些行出现在记录的输出中:

SELECT

'Today is'

,

CURDATE()

;

SELECT 'Today is' , CURDATE();

出于记录目的, mysql会忽略与'ignore'列表中的任何模式匹配的语句。默认情况下,模式列表为 "IDENTIFIED:PASSWORD",以忽略引用密码的语句。模式匹配不区分大小写。在模式中,两个字符是特殊的:

? 匹配任何单个字符。

* 匹配零个或多个字符的任何序列。

要指定其他模式,请使用--histignore选项或设置MYSQL_HISTIGNORE环境变量。(如果同时指定了两个选项,则选项值优先。)该值应该是一个或多个冒号分隔的模式的列表,并附加到默认模式列表中。

命令行上指定的模式可能需要加引号或转义,以防止您的命令解释器特殊对待它们。例如, 除了引用密码的语句之外,要禁止记录 UPDATE和DELETE语句,请像下面这样调用mysql:

shell>mysql --histignore="*UPDATE*:*DELETE*"

控制历史记录文件

.mysql_history文件应该进行保护,因为敏感信息可能会被写入到它,如包含口令的SQL语句的文本。当使用向上箭头键调用历史记录时,可以从mysql客户端访问文件中的语句 。

如果您不想维护历史记录文件,请先删除 .mysql_history(如果存在)。然后,使用以下两种技术之一阻止其再次创建:

将MYSQL_HISTFILE环境变量设置为/dev/null。要使该设置在您每次登录时生效,请将其放入shell程序的启动文件之一中。

创建.mysql_history到的符号链接/dev/null;只需执行一次:shell>ln -s /dev/null $HOME/.mysql_history

syslog日志记录特征

如果给出了--syslog选项,则mysql将交互式语句写入系统日志记录工具。消息日志记录具有以下特征。

记录发生在“info”级别。这对应于Unix/Linux的功能syslog的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;'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值