社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
适用mysql5.7。
MySQL的客户端可以做这些类型的日志记录,用于交互式执行的语句:
以下讨论描述了适用于所有日志记录类型的特征,并提供了每种日志记录类型所特有的信息。
对于每个启用的日志记录目标,语句日志记录如下发生:
mysql> SELECT
-> 'Today is'
-> ,
-> CURDATE()
-> ;
在这种情况下,mysql将记录 “SELECT”,“‘Today is’”,“,”,“CURDATE()”,和 “;”行读取它们。在将 SELECTn’Today is’n,nCURDATE() 映射到 SELECT ‘Today is’ ,CURDATE() 后,它还记录完整的语句。因此,这些行出现在记录的输出中:
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_history(如果存在)。然后,使用以下两种技术之一阻止其再次创建:
shell> ln -s /dev/null $HOME/.mysql_history
如果给出了 --syslog 选项,则mysql将交互式语句写入系统日志记录工具。消息日志记录具有以下特征。
日志记录发生在“信息”级别。这对应于Unix/Linux系统日志功能上syslog的LOG_INFO优先级和Windows事件日志的EVENTLOG_INFORMATION_TYPE。
消息大小限制为1024个字节。
消息由标识符MysqlClient和这些值组成:
这是在Linux上使用 --syslog 生成的输出示例。格式化此输出以提高可读性;每条记录的消息实际上只占一行。
Feb 6 20:06:12 blog MysqlClient: SYSTEM_USER:'root', MYSQL_USER:'root', CONNECTION_ID:6, DB_SERVER:'--', DB:'--', QUERY:'show databases;'
mysql> help search_string
如果为help 命令提供参数,则mysql将其用作搜索字符串,以从《 MySQL参考手册》的内容访问服务器端帮助。该命令的正确操作要求mysql使用帮助主题信息来初始化数据库中的帮助表。
如果搜索字符串不匹配,则搜索失败:
mysql> help me
Nothing found
Please try to run 'help contents' for a list of all accessible topics
使用help contents查看帮助类别的列表:
mysql> help contents
You asked for help about help category: "Contents"
For more information, type 'help <item>', where <item> is one of the
following categories:
Account Management
Administration
Data Definition
Data Manipulation
Data Types
Functions
Functions and Modifiers for Use with GROUP BY
Geographic Features
Language Structure
Plugins
Storage Engines
Stored Routines
Table Maintenance
Transactions
Triggers
如果搜索字符串匹配多个项目,则 mysql显示匹配主题的列表:
mysql> help logs
Many help items for your request exist.
To make a more specific request, please type 'help <item>',
where <item> is one of the following topics:
SHOW
SHOW BINARY LOGS
SHOW ENGINE
SHOW LOGS
使用主题作为搜索字符串,以查看该主题的帮助条目:
mysql> help show binary logs
Name: 'SHOW BINARY LOGS'
Description:
Syntax:
SHOW BINARY LOGS
SHOW MASTER LOGS
Lists the binary log files on the server. This statement is used as
part of the procedure described in [HELP PURGE BINARY LOGS], that shows
how to determine which logs can be purged.
mysql> SHOW BINARY LOGS;
+---------------+-----------+
| Log_name | File_size |
+---------------+-----------+
| binlog.000015 | 724935 |
| binlog.000016 | 733481 |
+---------------+-----------+
搜索字符串可以包含通配符%和u。它们与使用LIKE运算符执行的模式匹配操作具有相同的含义。例如,HELP rep% 返回以rep开头的主题列表:
mysql> HELP rep%
Many help items for your request exist.
To make a more specific request, please type 'help <item>',
where <item> is one of the following
topics:
REPAIR TABLE
REPEAT FUNCTION
REPEAT LOOP
REPLACE
REPLACE FUNCTION
在MySQL的客户端通常交互使用,如下所示:
shell> mysql db_name
但是,也可以将SQL语句放入文件中,然后告诉mysql从该文件中读取其输入。为此,创建一个包含您要执行的语句的文本文件text_file 。然后调用 mysql,如下所示:
shell> mysql db_name < text_file
如果将 USE db_name 语句作为文件中的第一条语句放置,则无需在命令行上指定数据库名称:
shell> mysql < text_file
如果您已经在运行mysql,则可以使用source 或 . 命令执行SQL脚本文件:
mysql> source file_name
mysql> . file_name
有时,您可能希望您的脚本向用户显示进度信息。为此,您可以插入如下语句:
SELECT '<info_to_display>' AS ' ';
该语句显示输出 <info_to_display>。
您也可以使用 --verbose 选项调用mysql,该选项使每个语句在产生结果之前显示。
mysql在输入文件的开头忽略Unicode字节顺序标记(BOM)字符。以前,它会读取它们并将其发送到服务器,从而导致语法错误。BOM的存在不会导致 mysql更改其默认字符集。为此,请使用诸如 --default-character-set=utf8 的选项调用mysql。
https://dev.mysql.com/doc/refman/5.7/en/mysql-batch-commands.html
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!