10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国Ltr)- 41.6 mb
PDF (A4)- 41.7 mb
手册(TGZ)- 262.1 kb
手册(Zip)- 372.2 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册节选

4.5.1.3 mysql客户端日志

mysql客户端可以为交互执行的语句执行以下类型的日志记录:

  • 在Unix中,mysql将语句写入历史文件。默认情况下,该文件是命名的.mysql_history在您的主目录中。属性的值可指定不同的文件MYSQL_HISTFILE环境变量。

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

下面的讨论描述了适用于所有日志类型的特征,并提供了特定于每种日志类型的信息。

日志记录是如何发生的

对于每个已启用的日志目的地,语句日志记录的发生方式如下:

  • 只有在交互执行时,语句才会被记录下来。例如,当从文件或管道读取语句时,语句是非交互式的。方法也可以抑制语句日志记录——批——执行选择。

  • 语句将被忽略,如果它们匹配忽略列表。这个列表将在后面描述。

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

  • 如果一个未被忽略的语句跨越多行(不包括结束分隔符),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能力和toEVENTLOG_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;'