的mysql客户端可以为交互执行的语句执行以下类型的日志记录:
下面的讨论描述了适用于所有日志类型的特征,并提供了特定于每种日志类型的信息。
日志记录是如何发生的
对于每个已启用的日志目的地,语句日志记录的发生方式如下:
因此,跨越多行的输入语句可以记录两次日志。考虑这个输入:
mysql >选择——>“今天是 ' -> , -> CURDATE () - >;
在这种情况下,mysql记录”选择”,”“今天””,”,”,”CURDATE ()”,”;”当它读取它们的时候。它还记录映射后的完整语句选择\ n 'Today ' \ n \ nCURDATE ()
来SELECT 'Today is', CURDATE()
,加上分隔符。因此,这些行出现在日志输出中:
SELECT 'Today is', CURDATE();SELECT 'Today is', CURDATE();
mysql类中匹配任何模式的语句将被忽略,以便记录日志”忽略”列表。默认情况下,模式列表为“密码*确定*:* *”
,以忽略引用密码的语句。模式匹配不区分大小写。在模式中,有两个字符是特殊的:
?
匹配任何单个字符。*
匹配任何零个或多个字符的序列。
方法指定其他模式——histignore
选项或设置MYSQL_HISTIGNORE
环境变量。(如果两者都指定了,则选项值优先。)该值应该是一个或多个以冒号分隔的模式的列表,这些模式被附加到默认模式列表中。
命令行上指定的模式可能需要加引号或转义,以防止命令解释器对它们进行特殊处理。例如,抑制日志记录更新
而且删除
除引用密码的语句外,还可以调用mysql是这样的:
mysql——histignore = " * *更新:*删除*”
控制历史文件
的.mysql_history
文件应该使用限制性访问模式进行保护,因为可能会将敏感信息写入其中,例如包含密码的SQL语句的文本。看到第6.1.2.1节“密码保安最终用户指引”.文件中的语句可以从mysql客户端时向上箭头键用于回忆历史。看到禁用互动的历史.
如果不想维护历史文件,请先删除.mysql_history
如果它的存在。然后使用以下任何一种技术来防止它再次被创建:
设置
MYSQL_HISTFILE
环境变量来/ dev / null
.要使此设置在每次登录时生效,请将其放在shell的启动文件中。创建
.mysql_history
作为到的符号链接/ dev / null
;这只需要做一次:-s /dev/null $HOME/.mysql_history
syslog测井特征
如果——syslog
选择是,mysql将交互语句写入系统日志记录工具。消息日志记录具有以下特征。
日志记录在”信息”的水平。这对应于LOG_INFO
优先考虑syslog
在Unix / Linuxsyslog
能力和EVENTLOG_INFORMATION_TYPE
查看Windows事件日志。有关日志记录功能的配置,请参阅您的系统文10bet官方网站档。
消息大小限制为1024字节。
消息由标识符组成MysqlClient
后面跟着这些值:
SYSTEM_USER
操作系统用户名(登录名)或
--
如果用户未知。MYSQL_USER
MySQL用户名(用
——用户
选项)或--
如果用户未知。CONNECTION_ID
:客户端连接标识符。这和
CONNECTION_ID ()
函数在会话中的值。DB_SERVER
服务器主机或
--
如果主机未知。DB
默认数据库或
--
如果没有选择数据库。查询
日志语句的文本。
下面是在Linux上使用——syslog
.这个输出被格式化为可读性;每个记录的消息实际上只有一行。
3月7日12:39:28 myhost MysqlClient[20824]: SYSTEM_USER:'oscar', MYSQL_USER:'my_oscar', CONNECTION_ID:23, DB_SERVER:'127.0.0.1', DB:'——',QUERY:'USE test;' ' MYSQL_USER:'my_oscar', CONNECTION_ID:23, DB_SERVER:'127.0.0.1', DB:'test', QUERY:'SHOW TABLES;'