MySQL8 中文参考(十),mysql8.2

MySQL8 中文参考(十) 原文:docs.oracle.com/javase/tutorial/reallybigindex.html 6.4.4 mysql_tzinfo_to_sql — 加载时区表 原文&#xff1a

原文:docs.oracle.com/javase/tutorial/reallybigindex.html

6.4.4 mysql_tzinfo_to_sql — 加载时区表

原文:dev.mysql.com/doc/refman/8.0/en/mysql-tzinfo-to-sql.html

mysql_tzinfo_to_sql 程序将时区表加载到mysql 数据库中。这用于具有区域信息数据库(一组描述时区的文件)的系统。这些系统的示例包括Linux、FreeBSD、Solaris 和macOS。可以保存这些文件的位置之一是/usr/share/zoneinfo 目录(在Solaris 上为/usr/share/lib/zoneinfo)。如果您的系统没有区域信息数据库,您可以使用MySQL 服务器时区支持中描述的可下载包。

mysql_tzinfo_to_sql 可以通过多种方式调用。

mysql_tzinfo_to_sql *tz_dir*

mysql_tzinfo_to_sql *tz_文件tz_名称*

mysql_tzinfo_to_sql –leap *tz_file*

第一个调用语法将区域信息目录路径名传递给mysql_tzinfo_to_sql 并将输出发送到mysql 程序。例如:

mysql_tzinfo_to_sql /usr/share/zoneinfo mysql -u root mysql | mysql_tzinfo_to_sql /usr/share/zoneinfo mysql -u root mysql |

mysql_tzinfo_to_sql 读取系统时区文件并从中生成SQL 语句。 mysql 处理这些语句来加载时区表。

第二种语法使mysql_tzinfo_to_sql 加载与时区名称*tz_name 相对应的单个时区文件tz_file*。

mysql_tzinfo_to_sql *tz_file* *tz_name* mysql -u root mysql |

如果您的时区需要考虑闰秒,请使用第三种语法调用mysql_tzinfo_to_sql 来初始化闰秒信息。 *tz_file* 是时区文件的名称。

mysql_tzinfo_to_sql –leap *tz_file* | mysql -u root mysql |

运行mysql_tzinfo_to_sql后,我们建议重新启动服务器以避免继续使用之前缓存的时区数据。

6.4.5 mysql_upgrade — 检查和升级 MySQL 表

原文:dev.mysql.com/doc/refman/8.0/en/mysql-upgrade.html

消息

从MySQL 8.0.16 开始,MySQL Server 执行之前由mysql_upgrade 处理的升级任务(有关详细信息,请参阅MySQL 升级过程的升级内容)。因此,mysql_upgrade 不再需要,在此版本中已弃用,并将在未来的MySQL 版本中删除。 mysql_upgrade 不再执行任何升级任务并无条件退出,状态为0。

每次升级MySQL 时,都必须运行mysql_upgrade,它会搜索与升级后的MySQL 服务器的不兼容性。

升级mysql 模式中的系统表以利用添加的新权限和功能。

性能模式、INFORMATION_SCHEMA、sys模式都会升级。

检查用户模式。

当mysql_upgrade 检测到与表潜在不兼容时,它会对该表执行检查,并在发现问题时尝试修复该表。如果您无法修复表,请参阅重建或修复表或索引以了解手动表修复策略。

mysql_upgrade 直接与MySQL 服务器通信并发送执行升级所需的SQL 语句。

警告

在执行升级之前,您应该始终备份当前的MySQL 安装。请参阅如何备份数据库。

根据升级不兼容性,在升级MySQL 安装和运行mysql_upgrade 之前可能需要进行特殊处理。有关如何确定此类不兼容性是否适用于您的安装以及如何解决这些问题的信息,请参阅第3 章“升级MySQL”。

使用mysql_upgrade 如下:

请确保服务器正在运行。

调用mysql_upgrade升级mysql schema中的系统表以及检查和修复其他schema中的表。

mysql_upgrade [*可选*]

为了使系统表更改生效,请停止并重新启动服务器。

如果您有多个MySQL 服务器实例需要升级,请使用适当的连接参数调用mysql_upgrade 以连接到每个所需的服务器。例如,对于在本地主机端口3306-3308 上运行的服务器,请连接到适当的端口进行升级。

mysql_upgrade –protocol=tcp -P 3306 [*其他选项*]

mysql_upgrade –protocol=tcp -P 3307 [*其他选项*]

mysql_upgrade –protocol=tcp -P 3308 [*其他选项*]

对于Unix 上的本地主机连接,–protocol=tcp 选项使用TCP/IP 而不是使用Unix 套接字文件建立连接。

默认情况下,mysql_upgrade 以MySQL root 用户身份运行。如果运行mysql_upgrade时root密码已过期,则会显示密码过期消息,并且mysql_upgrade失败。要解决此问题,请重置root 密码以取消过期日期,然后再次运行mysql_upgrade。首先,以root 身份连接到服务器。

$ mysql -u 根-p

请输入密码: **** – 在此输入您的root 密码

使用ALTER USER 重置您的密码。

mysql ALTER USER USER() IDENTIFIED BY \’*root-password*\’;

然后退出mysql并再次运行mysql_upgrade。

$ mysql_upgrade [*可选*]

消息

如果使用disabled_storage_engines系统变量运行服务器以禁用某些存储引擎(例如MyISAM),mysql_upgrade可能会失败并出现类似于以下内容的错误:

mysql_upgrade: [错误] 3161: 存储引擎MyISAM 已禁用

(不允许创建表)。

要解决此问题,请重新启动服务器并禁用disabled_storage_engines。您现在应该能够成功运行mysql_upgrade。然后重新启动服务器并将disabled_storage_engines设置为其原始值。

mysql_upgrade 根据需要在所有用户模式下处理所有表,除非使用–upgrade-system-tables 选项调用。表检查可能需要很长时间才能完成。每个表都被锁定,因此在处理该表时其他会话无法使用它。检查和修复操作可能需要很长时间,尤其是对于大型表。表检查使用CHECK TABLE 语句的FOR UPGRADE 选项。有关此选项的更多信息,请参见CHECK TABLE 语句。

mysql_upgrade 用当前MySQL 版本号标记所有检查和修复的表。这允许您确定下次在同一服务器版本上运行mysql_upgrade 时是否需要再次检查或修复特定表。

mysql_upgrade 将MySQL 版本号存储在数据目录中名为mysql_upgrade_info 的文件中。用于快速检查该版本中的所有表是否都已检查并允许跳过表检查。要忽略此文件并运行检查,请使用–force 选项。

消息

mysql_upgrade_info 文件已弃用,并将在未来的MySQL 版本中删除。

mysql_upgrade 检查mysql.user 系统表中的行以及具有空插件列的任何行,如果凭据使用与插件兼容的哈希格式,则会将该列更改为“mysql_native_password”集。包含以前4.1 版本的密码哈希的行必须手动升级。

mysql_upgrade 不会升级时区表或帮助表的内容。有关升级说明,请参见第7.1.15 节“MySQL 服务器时区支持”和第7.1.17 节“服务器端帮助支持”。

除非使用–skip-sys-schema 选项调用,否则mysql_upgrade 将安装sys 架构(如果尚未安装),否则将其升级到当前版本。如果sys 架构存在但没有版本视图,则会出现错误,因为该架构不存在代表用户创建的架构。

sys 模式存在,但没有sys.version 视图。

如果您有用户创建的sys 架构,则这是

升级才能成功。

要在这种情况下升级,请首先删除或重命名现有的sys 架构。

mysql_upgrade 支持以下选项:这些选项可以在命令行上指定,也可以在[mysql_upgrade] 和[client] 组的选项文件中指定。有关MySQL 程序中使用的选项文件的更多信息,请参阅使用选项文件。

表6.11 mysql_upgrade 选项

选项名称说明引入已弃用bind-address 使用指定网络接口连接到MySQL 服务器character-sets-dir 安装字符集的目录compress 在客户端和服务器之间发送压缩所有信息8.0.18 compression-algorithm 连接允许压缩算法到服务器8.0.18 debug 写入调试日志 debug-check 在程序退出时打印调试信息 debug-info 在程序退出时打印调试信息、内存和CPU 统计信息default-auth 身份验证插件使用default-character- set 指定默认字符集defaults-extra-file 常用选项除文件外还读取指定的选项文件defaults-file 只读取指定的选项文件defaults-group-suffix 选项组后缀值force 即使已经存在在当前MySQL 版本中运行,强制mysql_upgrade 运行get-server-public-key 从服务器请求RSA 公钥help 显示帮助消息并退出host 是其所在的主机MySQL 服务器的位置login -path 从mylogin.cnf 读取登录路径选项max-allowed-packet 发送到服务器和从服务器发送的最大数据包长度net-buffer-length TCP/IP 和套接字通信的缓冲区大小no-defaults 不读取选项选择文件password 连接到服务时使用的密码pipe 使用命名管道连接到服务器(仅限Windows) plugin-dir 安装插件的目录port 连接到IP 端口号的TCP/端口print- defaults print 默认选项protocol 要使用的传输协议server-public-key-path 包含RSA 公钥的文件的路径名shared-memory-base-name 共享内存连接的共享内存名称(仅限Windows) Skip-sys -schema 不安装或升级sys 架构 使用套接字Unix 套接字文件或Windows 命名管道 包含受信任SSL 证书颁发机构列表的ssl-ca 文件 受信任SSL 证书包含颁发机构证书文件目录的ssl-capath 文件 ssl-包含X.509 证书的cert 文件 ssl-cipher 允许连接加密的密码 包含证书吊销列表的ssl-crl 文件 包含吊销列表文件的证书ssl-crlpath 目录ssl-fips-mode yes 在客户端上启用FIPS 模式8.0.34 ssl-key 包含X.509 密钥的文件 ssl-mode 连接到服务器所需的安全状态 ssl-session-data 包含SSL 的文件会话数据8.0.29 ssl- session-data- continue-on- failed-reuse 如果会话重用失败,是否建立连接8.0.29 tls- ciphersuites 允许加密连接使用TLSv1.3 密码套件8.0.16 tls- version 允许加密连接TLS 协议upgrade-system-tables 仅更新系统表,用户模式更新user 连接到服务器时使用的MySQL 用户名verbose 详细模式version-check 验证正确的服务器版本write -binlog 将所有语句写入二进制日志–zstd-compression-level 的压缩级别使用zstd 压缩连接的服务器8.0.18 选项名称说明引入弃用

– 帮助

命令行格式–help 显示简短的帮助消息并退出。

–绑定地址=*ip_address*

命令行格式–bind-address=ip_address 在具有多个网络接口的计算机上,使用此选项选择连接到MySQL 服务器的接口。

–character-sets-dir=*目录名*

命令行格式–character-sets-dir=dir_name 类型目录名称字符集安装目录。请参阅配置字符集。

–压缩,-C

命令行格式–compress[={OFF#124;ON}] 已弃用8.0.18 类型Boolean 默认值OFF 尽可能压缩客户端和服务器之间发送的所有信息。请参见第6.2.8 节“压缩控制连接”。

从MySQL 8.0.18 开始,此选项已被弃用。它将在未来的MySQL 版本中删除。请参阅为旧连接配置压缩。

–压缩算法=*值*

命令行格式–compression-algorithms=value 8.0.18 中引入类型set 默认值uncompressed 有效值zlib “ zstd “ uncompressed 可以连接到服务器的允许的压缩算法。可用的算法与protocol_compression_algorithms系统变量相同。默认值是未压缩的。

有关详细信息,请参阅连接压缩控制。

该选项是在MySQL 8.0.18 中添加的。

–debug[=*debug_options*], -# [*debug_options*]

命令行格式–debug[=#] 类型String 默认值d:t:O,/tmp/mysql_upgrade.trace 写入调试日志。典型的*debug_options* 字符串是d:t:o, *file_name*。默认值为d:t:O,/tmp/mysql_upgrade.trace。

–调试检查

命令行格式–debug-check type Boolean 程序退出时输出调试信息。

–调试信息,-T

命令行格式–debug-info 类型Boolean 默认值FALSE 程序退出时打印调试信息以及内存和CPU 使用统计信息。

–default-auth=*插件*

命令行格式–default-auth=plugin type string 提示您使用哪个客户端身份验证插件。请参阅可插入身份验证。

–default-character-set=*字符集名称*

命令行格式–default-character-set=name 类型字符串使用*charset_name* 作为默认字符集。请参阅配置字符集。

–defaults-extra-file=*文件名*

命令行格式–defaults-extra-file=file_name type filename 此选项文件在全局选项文件(在Unix 上)之后、用户选项文件之前读取。如果该文件不存在或无法访问,则会发生错误。如果*file_name* 不是绝对路径名,则将其解释为相对于当前目录的路径名。

有关此选项文件选项和其他选项文件选项的详细信息,请参阅影响选项文件处理的命令行选项。

–defaults-file=*文件名*

命令行格式–defaults-file=file_name 类型filename 仅使用指定的选项文件。如果该文件不存在或无法访问,则会发生错误。如果*file_name* 不是绝对路径名,则将其解释为相对于当前目录的路径名。

有关此选项文件选项和其他选项文件选项的详细信息,请参阅影响选项文件处理的命令行选项。

–defaults-group-suffix=*str*

命令行格式–defaults-group-suffix=str 字符串类型不仅读取常用的选项组,还读取具有常用名称和后缀*str* 的组。例如,mysql_upgrade 通常读取[client] 和[mysql_upgrade] 组。如果此选项指定为–defaults-group-suffix=_other,则mysql_upgrade 还会读取[client_other] 和[mysql_upgrade_other] 组。

有关此选项文件选项和其他选项文件选项的详细信息,请参阅影响选项文件处理的命令行选项。

– 力量

命令行格式–force type boolean 强制mysql_upgrade 运行,忽略mysql_upgrade_info 文件,即使它已经针对当前版本的MySQL 运行。

–获取服务器公钥

命令行格式–get-server-public-key 类型boolean 向服务器请求公钥以用于RSA 密钥对的密码交换。此选项适用于使用caching_sha2_password 身份验证插件进行身份验证的客户端。对于此插件,除非请求,否则服务器不会发送公钥。对于不使用插件进行身份验证的帐户,此选项将被忽略。如果不使用基于RSA 的密码交换,例如当客户端使用安全连接连接到服务器时,也会忽略此选项。

如果指定了–server-public-key-path=*file_name* 并指定了有效的公钥文件,则它优先于–get-server-public-key。

有关caching_sha2_password 插件的更多信息,请参阅缓存SHA-2 可插入身份验证。

–host=*主机名*, -h *主机名*

命令行格式–host=name type string 连接到指定主机上的MySQL 服务器。

–登录密码=*姓名*

命令行格式–login-path=name 类型string 从.mylogin.cnf 登录路径文件中指定的登录路径读取选项。登录路径是一个选项组,其中包含指定要连接的MySQL 服务器和要进行身份验证的帐户的选项。使用mysql_config_editor 实用程序创建或修改登录路径文件。请参阅mysql_config_editor — MySQL 配置实用程序。

有关此选项和其他可选文件选项的更多信息,请参见第6.2.2.3 节“影响选项文件处理的命令行选项”。

–最大允许数据包=*值*

命令行格式–max-allowed-packet=value 类型Integer 默认值25165824 最小值4096 最大值2147483648 客户端/服务器通信缓冲区的最大大小。默认值为24MB。最小值和最大值分别为4KB 和2GB。

–net-buffer-length=*值*

命令行格式–net-buffer-length=value 类型Integer 默认值1047552 最小值4096 最大值16777216 客户端/服务器通信缓冲区的初始大小。默认值为1MB – 1KB。最小值和最大值分别为4KB 和16MB。

–无默认值

命令行格式–no-defaults 选项不读取文件。如果由于从选项文件中读取未知选项而导致程序无法启动,则可以使用–no-defaults 来阻止读取选项。

例外情况是.mylogin.cnf 文件(如果存在)始终会被读取。 –no-defaults 还允许您以比命令行更安全的方式指定密码。使用mysql_config_editor 实用程序创建.mylogin.cnf。请参阅mysql_config_editor — MySQL 配置实用程序。

有关此选项和其他可选文件选项的更多信息,请参见第6.2.2.3 节“影响选项文件处理的命令行选项”。

–密码[=*密码*], -p[*密码*]

命令行格式–password[=name] type string 用于连接到服务器的MySQL 帐户的密码。密码值是可选的。如果未指定,mysql_upgrade 会提示输入密码。如果指定,则–password=或-p 与下一个密码之间不能有空格。如果未指定密码选项,则默认不发送密码。

在命令行上指定密码应该被认为是不安全的。要避免在命令行中输入密码,请使用选项文件。有关密码安全性,请参阅最终用户指南。

要显式指定您没有密码并且mysql_upgrade 不提示输入密码,请使用–skip-password 选项。

–管道,-W

命令行格式–pipe type string 在Windows 上,使用命名管道连接到服务器。仅当在服务器启动时启用named_pipe系统变量以支持命名管道连接时,此选项才适用。此外,建立连接的用户必须是由named_pipe_full_access_group系统变量指定的Windows组的成员。

–plugin-dir=*目录名称*

命令行格式–plugin-dir=dir_name 输入目录名称以搜索插件目录。如果您使用–default-auth 选项指定了身份验证插件但mysql_upgrade 找不到它,请指定此选项。请参阅可插入身份验证。

–端口=*端口_

num*, -P *port_num*

命令行格式–port=#类型数字用于 TCP/IP 连接的端口号。
–print-defaults

命令行格式–print-defaults打印程序名称以及从选项文件获取的所有选项。
–protocol={TCP|SOCKET|PIPE|MEMORY}

命令行格式–protocol=name类型字符串用于连接到服务器的传输协议。当其他连接参数通常导致使用不希望使用的协议时,这很有用。有关允许值的详细信息,请参见第 6.2.7 节,“连接传输协议”。
–server-public-key-path=*file_name*

命令行格式–server-public-key-path=file_name类型文件名以 PEM 格式的文件路径名,其中包含服务器所需的用于 RSA 密钥对密码交换的客户端端公钥的副本。此选项适用于使用sha256_password或caching_sha2_password认证插件进行身份验证的客户端。对于不使用这些插件进行身份验证的帐户,此选项将被忽略。如果不使用基于 RSA 的密码交换(例如客户端使用安全连接连接到服务器时),此选项也将被忽略。
如果–server-public-key-path=*file_name*被指定并指定了有效的公钥文件,则优先于–get-server-public-key。
对于sha256_password,此选项仅在 MySQL 使用 OpenSSL 构建时适用。
有关sha256_password和caching_sha2_password插件的信息,请参见第 8.4.1.3 节,“SHA-256 可插拔认证”和第 8.4.1.2 节,“缓存 SHA-2 可插拔认证”。
–shared-memory-base-name=*name*

命令行格式–shared-memory-base-name=name平台特定Windows在 Windows 上,用于通过共享内存连接到本地服务器的共享内存名称。默认值为MYSQL。共享内存名称区分大小写。
仅当服务器启用了shared_memory系统变量以支持共享内存连��时,此选项才适用。
–skip-sys-schema

命令行格式–skip-sys-schema类型布尔值默认值FALSE默认情况下,mysql_upgrade如果未安装sys模式,则安装它,并将其升级到当前版本。–skip-sys-schema选项会抑制此行为。
–socket=*path*, -S *path*

命令行格式–socket={file_name|pipe_name}类型字符串对于连接到localhost的连接,要使用的 Unix 套接字文件,或者在 Windows 上,要使用的命名管道的名称。
在 Windows 上,只有在服务器启动时启用了named_pipe系统变量以支持命名管道连接时,此选项才适用。此外,进行连接的用户必须是由named_pipe_full_access_group系统变量指定的 Windows 组的成员。
–ssl*
以–ssl开头的选项指定是否使用加密连接连接到服务器,并指示 SSL 密钥和证书的位置。请参见加密连接的命令选项。
–ssl-fips-mode={OFF|ON|STRICT}

命令行格式–ssl-fips-mode={OFF|ON|STRICT}已弃用8.0.34类型枚举默认值OFF有效值OFF“ON“STRICT控制是否在客户端端启用 FIPS 模式。–ssl-fips-mode选项与其他–ssl-*xxx*选项不同,它不用于建立加密连接,而是影响允许哪些加密操作。请参见第 8.8 节,“FIPS 支持”。
允许使用这些–ssl-fips-mode值:

OFF:禁用 FIPS 模式。
ON:启用 FIPS 模式。
STRICT:启用“严格” FIPS 模式。
注意
如果 OpenSSL FIPS Object 模块不可用,则–ssl-fips-mode的唯一允许值是OFF。在这种情况下,将–ssl-fips-mode设置为ON或STRICT会导致客户端在启动时产生警告并在非 FIPS 模式下运行。
从 MySQL 8.0.34 开始,此选项已弃用。预计在将来的 MySQL 版本中将其移除。
–tls-ciphersuites=*ciphersuite_list*

命令行格式–tls-ciphersuites=ciphersuite_list引入版本8.0.16类型字符串用于使用 TLSv1.3 的加密连接的允许密码套件。该值是一个或多个以冒号分隔的密码套件名称列表。可以为此选项命名的密码套件取决于用于编译 MySQL 的 SSL 库。有关详细信息,请参见第 8.3.2 节,“加密连接 TLS 协议和密码”。
此选项是在 MySQL 8.0.16 中添加的。
–tls-version=*protocol_list*

命令行格式–tls-version=protocol_list类型字符串默认值 (≥ 8.0.16)TLSv1,TLSv1.1,TLSv1.2,TLSv1.3 (OpenSSL 1.1.1 或更高版本)TLSv1,TLSv1.1,TLSv1.2 (否则)默认值 (≤ 8.0.15)TLSv1,TLSv1.1,TLSv1.2加密连接的可接受 TLS 协议。该值是一个或多个逗号分隔的协议名称列表。可以为此选项命名的协议取决于用于编译 MySQL 的 SSL 库。有关详细信息,请参见 Section 8.3.2, “Encrypted Connection TLS Protocols and Ciphers”。
–upgrade-system-tables, -s

命令行格式–upgrade-system-tables类型布尔值仅升级 mysql 模式中的系统表,不升级用户模式。
–user=*user_name*, -u *user_name*

命令行格式–user=name类型字符串用于连接到服务器的 MySQL 帐户的用户名。默认用户名为 root。
–verbose

命令行格式–verbose类型布尔值详细模式。打印有关程序操作的更多信息。
–version-check, -k

命令行格式–version-check类型布尔值检查 mysql_upgrade 连接的服务器版本,以验证其与构建 mysql_upgrade 的版本相同。如果不同,mysql_upgrade 将退出。此选项默认启用;要禁用检查,请使用 –skip-version-check。
–write-binlog

命令行格式–write-binlog类型布尔值默认值OFF默认情况下,mysql_upgrade 的二进制日志记录是禁用的。如果希望将其操作写入二进制日志,请使用 –write-binlog。
当服务器启用全局事务标识符(GTIDs)时(gtid_mode=ON),不要通过 mysql_upgrade 启用二进制日志记录。
–zstd-compression-level=*level*

命令行格式–zstd-compression-level=#引入版本8.0.18类型整数用于使用zstd压缩算法连接到服务器的压缩级别。允许的级别从 1 到 22,较大的值表示较高级别的压缩。默认的zstd压缩级别为 3。压缩级别设置对不使用zstd压缩的连接没有影响。
有关更多信息,请参见第 6.2.8 节,“连接压缩控制”。
此选项是在 MySQL 8.0.18 中添加的。

6.5 客户端程序

原文:dev.mysql.com/doc/refman/8.0/en/programs-client.html

6.5.1 mysql — MySQL 命令行客户端

6.5.2 mysqladmin — 一个 MySQL 服务器管理程序

6.5.3 mysqlcheck — 一个表维护程序

6.5.4 mysqldump — 一个数据库备份程序

6.5.5 mysqlimport — 一个数据导入程序

6.5.6 mysqlpump — 一个数据库备份程序

6.5.7 mysqlshow — 显示数据库、表和列信息

6.5.8 mysqlslap — 一个负载仿真客户端

本节描述连接到 MySQL 服务器的客户端程序。

6.5.1 mysql — MySQL 命令行客户端

原文:dev.mysql.com/doc/refman/8.0/en/mysql.html

6.5.1.1 mysql 客户端选项

6.5.1.2 mysql 客户端命令

6.5.1.3 mysql 客户端日志记录

6.5.1.4 mysql 客户端服务器端帮助

6.5.1.5 从文本文件执行 SQL 语句

6.5.1.6 mysql 客户端技巧

mysql 是一个带有输入行编辑功能的简单 SQL shell。它支持交互和非交互使用。在交互使用时,查询结果以 ASCII 表格格式呈现。在非交互使用时(例如作为过滤器),结果以制表符分隔的格式呈现。可以使用命令选项更改输出格式。

如果由于结果集过大而导致内存不足而出现问题,请使用 –quick 选项。这会强制mysql逐行从服务器检索结果,而不是检索整个结果集并在显示之前将其缓冲在内存中。这是通过在客户端/服务器库中使用 mysql_use_result() C API 函数而不是 mysql_store_result() 来返回结果集来完成的。

注意

或者,MySQL Shell 提供对 X DevAPI 的访问。详情请参阅 MySQL Shell 8.0。

使用mysql非常简单。请在命令解释器的提示符下按以下方式调用它:

mysql *db_name*

或者:

mysql –user=*user_name* –password *db_name*

在这种情况下,您需要根据mysql 显示的提示输入密码:

Enter password: *your_password*

然后输入一个 SQL 语句,以 ;、\\g 或 \\G 结尾,然后按 Enter 键。

输入 Control+C 可以中断当前语句(如果有的话),或者取消任何部分输入行。

您可以像这样在脚本文件(批处理文件)中执行 SQL 语句:

mysql *db_name* < *script.sql* > *output.tab*

在 Unix 上,mysql 客户端会将交互执行的语句记录到历史文件中。请参阅 6.5.1.3 “mysql 客户端日志记录”。

原文:dev.mysql.com/doc/refman/8.0/en/mysql-command-options.html

6.5.1.1 mysql 客户端选项

mysql 支持以下选项,可以在命令行或选项文件的 [mysql] 和 [client] 组中指定。有关 MySQL 程序使用的选项文件的信息,请参见 6.2.2.2 使用选项文件。

表 6.12 mysql 客户端选项

选项名称描述引入废弃–auto-rehash启用自动重新哈希–auto-vertical-output启用自动垂直结果集显示–batch不使用历史文件–binary-as-hex以十六进制表示显示二进制值–binary-mode禁用 \\r\\n – 到 – \\n 的转换和将 \\0 视为查询结束–bind-address使用指定的网络接口连接到 MySQL 服务器–character-sets-dir安装字符集的目录–column-names在结果中写入列名–column-type-info显示结果集元数据–comments是否保留或剥离发送到服务器的语句中的注释–compress压缩客户端和服务器之间发送的所有信息8.0.18–compression-algorithms连接到服务器的允许压缩算法8.0.18–connect-expired-password指示服务器客户端可以处理过期密码沙盒模式–connect-timeout连接超时前的秒数–database要使用的数据库–debug写入调试日志;仅在 MySQL 构建时支持调试时可用–debug-check程序退出时打印调试信息–debug-info程序退出时打印调试信息、内存和 CPU 统计–default-auth要使用的认证插件–default-character-set指定默认字符集–defaults-extra-file除了通常的选项文件外,读取命名的选项文件–defaults-file仅读取命名的选项文件–defaults-group-suffix选项组后缀值–delimiter设置语句分隔符–dns-srv-name使用 DNS SRV 查找主机信息8.0.22–enable-cleartext-plugin启用明文认证插件–execute执行语句并退出–fido-register-factor必须进行注册的多因素认证因素8.0.278.0.35–force即使发生 SQL 错误也继续–get-server-public-key从服务器请求 RSA 公钥–help显示帮助信息并退出–histignore指定要忽略记录的语句模式–hostMySQL 服务器所在的主机–html生成 HTML 输出–ignore-spaces忽略函数名后的空格–init-command连接后要执行的 SQL 语句–line-numbers为错误写入行号–load-data-local-dirLOAD DATA LOCAL 语句中命名文件的目录8.0.21–local-infile启用或禁用 LOAD DATA 的 LOCAL 功能–login-path从.mylogin.cnf 中读取登录路径选项–max-allowed-packet发送到服务器或从服务器接收的最大数据包长度–max-join-size在使用–safe-updates 时,联接中的行的自动限制–named-commands启用命名的 mysql 命令–net-buffer-lengthTCP/IP 和套接字通信的缓冲区大小–network-namespace指定网络命名空间8.0.22–no-auto-rehash禁用自动重新哈希–no-beep发生错误时不发出蜂鸣声–no-defaults不读取任何选项文件–oci-config-file定义 Oracle Cloud Infrastructure CLI 配置文件的替代位置。8.0.27–one-database忽略除了命令行上指定的默认数据库之外的语句–pager用于分页查询输出的给定命令–password连接到服务器时使用的密码–password1连接到服务器时使用的第一个多因素身份验证密码8.0.27–password2连接到服务器时使用的第二个多因素身份验证密码8.0.27–password3连接到服务器时使用的第三个多因素身份验证密码8.0.27–pipe使用命名管道连接服务器(仅限 Windows)–plugin-authentication-kerberos-client-mode允许在 Windows 上通过 MIT Kerberos 库进行 GSSAPI 可插拔身份验证8.0.32–plugin-dir插件安装目录–port连接的 TCP/IP 端口号–print-defaults打印默认选项–prompt设置指定格式的提示符–protocol使用的传输协议–quick不缓存每个查询结果–raw写入列值而不进行转义转换–reconnect如果与服务器的连接丢失,自动尝试重新连接–safe-updates, –i-am-a-dummy仅允许指定键值的 UPDATE 和 DELETE 语句–select-limit在使用 –safe-updates 时 SELECT 语句的自动限制–server-public-key-path包含 RSA 公钥的文件的路径名–shared-memory-base-name共享内存连接的共享内存名称(仅限 Windows)–show-warnings如果有任何警告,则在每个语句后显示警告–sigint-ignore忽略 SIGINT 信号(通常是键入 Control+C 的结果)–silent静默模式–skip-auto-rehash禁用自动重新哈希–skip-column-names在结果中不写入列名–skip-line-numbers跳过错误的行号–skip-named-commands禁用命名的 mysql 命令–skip-pager禁用分���–skip-reconnect禁用重新连接–socket要使用的 Unix 套接字文件或 Windows 命名管道–ssl-ca包含受信任的 SSL 证书颁发机构列表的文件–ssl-capath包含受信任的 SSL 证书颁发机构证书文件的目录–ssl-cert包含 X.509 证书的文件–ssl-cipher连接加密的允许密码–ssl-crl包含证书吊销列表的文件–ssl-crlpath包含证书吊销列表文件的目录–ssl-fips-mode是否在客户端启用 FIPS 模式8.0.34–ssl-key包含 X.509 密钥的文件–ssl-mode与服务器连接的期望安全状态–ssl-session-data包含 SSL 会话数据的文件8.0.29–ssl-session-data-continue-on-failed-reuse如果会话重用失败是否建立连接8.0.29–syslog将交互式语句记录到 syslog–table以表格格式显示输出–tee将输出的副本追加到指定文件–tls-ciphersuites加密连接的允许的 TLSv1.3 密码套件8.0.16–tls-version加密连接的允许的 TLS 协议–unbuffered在每个查询后刷新缓冲区–user连接到服务器时要使用的 MySQL 用户名–verbose详细模式–version显示版本信息并退出–vertical垂直打印查询输出行(每列值一行)–wait如果无法建立连接,则等待并重试,而不是中止–xml生成 XML 输出–zstd-compression-level使用 zstd 压缩连接到服务器的压缩级别8.0.18选项名称描述引入废弃
–help, -?

命令行格式–help显示帮助信息并退出。
–auto-rehash

命令行格式–auto-rehash禁用方式skip-auto-rehash启用自动 rehash。默认情况下,此选项已启用,可实现数据库、表和列名的自动补全。使用–disable-auto-rehash来禁用 rehash。这会使mysql启动更快,但如果要使用名称补全,则必须发出rehash命令或其\\#快捷方式。
要完成一个名称,输入第一部分并按 Tab 键。如果名称是明确的,mysql会自动完成。否则,您可以再次按 Tab 键查看以您已输入的内容开头的可能名称。如果没有默认数据库,则不会发生自动完成。
注意
此功能需要使用readline库编译的 MySQL 客户端。通常,readline库在 Windows 上不可用。
–auto-vertical-output

命令行格式–auto-vertical-output如果结果集对当前窗口太宽,则使其以垂直方式显示,否则使用正常的表格格式显示。(这适用于以;或\\G结尾的语句。)
–batch, -B

命令行格式–batch使用制表符作为列分隔符打印结果,每行显示在新行上。使用此选项,mysql不使用历史文件。
批处理模式导致非表格输出格式和特殊字符的转义。可以通过使用原始模式来禁用转义;请参阅–raw选项的描述。
–binary-as-hex

命令行格式–binary-as-hex类型布尔值默认值(≥ 8.0.19)非交互模式下为 FALSE默认值(≤ 8.0.18)FALSE当给定此选项时,mysql会使用十六进制表示法(0x*value*)显示二进制数据。无论整体输出显示格式是表格、垂直、HTML 还是 XML,都会发生这种情况。
当启用–binary-as-hex选项时,会影响所有二进制字符串的显示,包括由CHAR()和UNHEX()等函数返回的字符串。以下示例演示了使用 ASCII 码A(65 十进制,41 十六进制)的情况:

禁用–binary-as-hex:
mysql> SELECT CHAR(0x41), UNHEX(\’41\’);
+————+————-+
| CHAR(0x41) | UNHEX(\’41\’) |
+————+————-+
| A | A |
+————+————-+
启用–binary-as-hex:
mysql> SELECT CHAR(0x41), UNHEX(\’41\’);
+————————+————————–+
| CHAR(0x41) | UNHEX(\’41\’) |
+————————+————————–+
| 0x41 | 0x41 |
+————————+————————–+
要编写一个二进制字符串表达式,以便无论是否启用–binary-as-hex,都将其显示为字符字符串,请使用以下技术:

CHAR()函数有一个USING *charset*子句:
mysql> SELECT CHAR(0x41 USING utf8mb4);
+————————–+
| CHAR(0x41 USING utf8mb4) |
+————————–+
| A |
+————————–+
更一般地,使用CONVERT()将表达式转换为给定的字符集:
mysql> SELECT CONVERT(UNHEX(\’41\’) USING utf8mb4);
+————————————+
| CONVERT(UNHEX(\’41\’) USING utf8mb4) |
+————————————+
| A |
+————————————+
截至 MySQL 8.0.19 版本,当mysql以交互模式运行时,默认情况下启用此选项。此外,当隐式或显式启用该选项时,status(或 \\s)命令的输出包括以下行:
Binary data as: Hexadecimal
要禁用十六进制表示法,请使用–skip-binary-as-hex。
–binary-mode

命令行格式–binary-mode此选项有助于处理可能包含BLOB值的mysqlbinlog输出。默认情况下,mysql将语句字符串中的 \\r\\n 转换为 \\n,并将 \\0 解释为语句终止符。–binary-mode禁用这两个功能。它还在非交互模式下禁用所有mysql命令,除了在输入通过管道传输到mysql或使用 source 命令加载时的 charset 和 delimiter。
–bind-address=*ip_address*

命令行格式–bind-address=ip_address在具有多个网络接口的计算机上,使用此选项选择连接到 MySQL 服务器的接口。
–character-sets-dir=*dir_name*

命令行格式–character-sets-dir=dir_name类型目录���称安装字符集的目录。请参阅第 12.15 节,“字符集配置”。
–column-names

命令行格式–column-names写入结果中的列名。
–column-type-info

命令行格式–column-type-info显示结果集元数据。此信息对应于 C API MYSQL_FIELD 数据结构的内容。请参阅 C API 基本数据结构。
–comments,-c

命令行格式–comments类型布尔值默认值FALSE是否剥离或保留发送到服务器的语句中的注释。默认为–skip-comments(剥离注释),启用则使用–comments(保留注释)。
注意
无论是否给出此选项,mysql客户端始终向服务器传递优化器提示。
注释剥离已弃用。预计此功能及其控制选项将在未来的 MySQL 版本中被移除。
–compress, -C

命令行格式–compress[={OFF|ON}]已弃用8.0.18类型布尔值默认值OFF如果可能的话,尽量压缩客户端和服务器之间发送的所有信息。参见 第 6.2.8 节,“连接压缩控制”。
从 MySQL 8.0.18 开始,此选项已弃用。预计在未来的 MySQL 版本中将其移除。请参见 配置传统连接压缩。
–compression-algorithms=*value*

命令行格式–compression-algorithms=value引入版本8.0.18类型集合默认值uncompressed有效数值zlib“zstd“uncompressed连接到服务器的允许的压缩算法。可用的算法与 protocol_compression_algorithms 系统变量相同。默认值为 uncompressed。
有关更多信息,请参见 第 6.2.8 节,“连接压缩控制”。
此选项在 MySQL 8.0.18 中添加。
–connect-expired-password

命令行格式–connect-expired-password表示客户端可以处理沙盒模式,如果用于连接的帐户密码已过期。这对于非交互式调用 mysql 可能很有用,因为通常情况下,服务器会断开尝试使用帐户密码已过期的帐户连接的非交互式客户端。(参见 第 8.2.16 节,“服务器处理过期密码”。)
–connect-timeout=*value*

命令行格式–connect-timeout=value类型数值默认值0连接超时之前的秒数。(默认值为 0。)
–database=*db_name*, -D *db_name*

命令行格式–database=dbname类型字符串要使用的数据库。这主要在选项文件中很有用。
–debug[=*debug_options*], -# [*debug_options*]

命令行格式–debug[=debug_options]类型字符串默认值d:t:o,/tmp/mysql.trace写一个调试日志。一个典型的*debug_options*字符串是d:t:o,*file_name*。默认值是d:t:o,/tmp/mysql.trace。
只有在使用WITH_DEBUG构建 MySQL 时才可用。由 Oracle 提供的 MySQL 发布二进制文件不使用此选项构建。
–debug-check

命令行格式–debug-check类型布尔值默认值FALSE在程序退出时打印一些调试信息。
只有在使用WITH_DEBUG构建 MySQL 时才可用。由 Oracle 提供的 MySQL 发布二进制文件不使用此选项构建。
–debug-info, -T

命令行格式–debug-info类型布尔值默认值FALSE在程序退出时打印调试信息以及内存和 CPU 使用统计信息。
只有在使用WITH_DEBUG构建 MySQL 时才可用。由 Oracle 提供的 MySQL 发布二进制文件不使用此选项构建。
–default-auth=*plugin*

命令行格式–default-auth=plugin类型字符串一个关于使用哪个客户端端身份验证插件的提示。请参阅第 8.2.17 节,“可插拔认证”。
–default-character-set=*charset_name*

命令行格式–default-character-set=charset_name类型字符串将*charset_name*用作客户端和连接的默认字符集。
如果操作系统使用一个字符集,而mysql客户端默认使用另一个字符集,则此选项可能很有用。在这种情况下,输出可能格式不正确。通常可以通过使用此选项强制客户端使用系统字符集来解决此类问题。
欲了解更多信息,请参阅第 12.4 节,“连接字符集和校对规则”,以及第 12.15 节,“字符集配置”。
–defaults-extra-file=*file_name*

命令行格式–defaults-extra-file=file_name类型文件名在全局选项文件之后但(在 Unix 上)在用户选项文件之前读取此选项文件。如果文件不存在或无法访问,将会出现错误。如果*file_name*不是绝对路径名,则将其解释为相对于当前目录。
关于此选项文件和其他选项文件选项的更多信息,请参见第 6.2.2.3 节,“影响选项文件处理的命令行选项”。
–defaults-file=*file_name*

命令行格式–defaults-file=file_name类型文件名仅使用给定的选项文件。如果文件不存在或无法访问,将会出现错误。如果*file_name*不是绝对路径名,则将其解释为相对于当前目录。
例外:即使使用–defaults-file,客户端程序也会读取.mylogin.cnf。
关于此选项文件和其他选项文件选项的更多信息,请参见第 6.2.2.3 节,“影响选项文件处理的命令行选项”。
–defaults-group-suffix=*str*

命令行格式–defaults-group-suffix=str类型字符串不仅读取通常的选项组,还读取具有通常名称和后缀*str*的组。例如,mysql通常会读取[client]和[mysql]组。如果给定此选项为–defaults-group-suffix=_other,mysql还会读取[client_other]和[mysql_other]组。
关于此选项文件和其他选项文件选项的更多信息,请参见第 6.2.2.3 节,“影响选项文件处理的命令行选项”。
–delimiter=*str*

命令行格式–delimiter=str类型字符串默认值;设置语句分隔符。默认为分号字符(;)。
–disable-named-commands
禁用命名命令。仅使用\\*形式,或仅在以分号(;)结尾的行的开头使用命名命令。mysql默认启用此选项。但是,即使使用此选项,长格式命令仍然可以从第一行起作用。请参见第 6.5.1.2 节,“mysql 客户端命令”。
–dns-srv-name=*name*

命令行格式–dns-srv-name=name引入版本8.0.22类型字符串指定确定用于建立与 MySQL 服务器的连接的候选主机的 DNS SRV 记录的名称。有关 MySQL 中 DNS SRV 支持的信息,请参见 第 6.2.6 节,“使用 DNS SRV 记录连接到服务器”。
假设 DNS 配置了 example.com 域的此 SRV 信息:
Name TTL Class Priority Weight Port Target
_mysql._tcp.example.com. 86400 IN SRV 0 5 3306 host1.example.com
_mysql._tcp.example.com. 86400 IN SRV 0 10 3306 host2.example.com
_mysql._tcp.example.com. 86400 IN SRV 10 5 3306 host3.example.com
_mysql._tcp.example.com. 86400 IN SRV 20 5 3306 host4.example.com
要使用该 DNS SRV 记录,请像这样调用 mysql:
mysql –dns-srv-name=_mysql._tcp.example.com
mysql 然后尝试连接组中的每个服务器,直到建立成功的连接。仅当无法建立到任何服务器的连接时才会发生连接失败。DNS SRV 记录中的优先级和权重值确定应尝试的服务器顺序。
当使用 –dns-srv-name 调用时,mysql 仅尝试建立 TCP 连接。
如果同时给出 –dns-srv-name 选项和 –host 选项,则 –dns-srv-name 选项优先于 –host 选项。如果在 mysql 启动时同时给出了 –dns-srv-name 选项以指定 DNS SRV 记录,并且随后在运行时使用 connect 命令并指定主机名参数,则该主机名优先于任何 –dns-srv-name 选项。
此选项是在 MySQL 8.0.22 中添加的。
–enable-cleartext-plugin

命令行格式–enable-cleartext-plugin类型布尔默认值FALSE启用 mysql_clear_password 明文认证插件。(请参阅 第 8.4.1.4 节,“客户端端明文插件认证”。)
–execute=*statement*, -e *statement*

命令行格式–execute=statement类型字符串执行语句并退出。默认输出格式类似于使用 –batch 生成的格式。有关示例,请参见 第 6.2.2.1 节,“在命令行上使用选项”。使用此选项,mysql 不使用历史文件。
–fido-register-factor=*value*

命令行格式–fido-register-factor=value引入8.0.27已弃用8.0.35类型字符串注意
从 MySQL 8.0.35 开始,此选项已弃用,并可能在未来的 MySQL 发行版中删除。
必须执行 FIDO 设备注册的因素或因素。此选项值必须是单个值,或用逗号分隔的两个值。每个值必须是 2 或 3,因此允许的选项值为\’2\’、\’3\’、\’2,3\’和\’3,2\’。
例如,需要为第三个认证因素注册的帐户调用 mysql 客户端如下:
mysql –user=*user_name* –fido-register-factor=3
需要为第二个和第三个认证因素注册的帐户调用 mysql 客户端如下:
mysql –user=*user_name* –fido-register-factor=2,3
如果注册成功,将建立连接。如果存在待注册的认证因素,在尝试连接到服务器时,连接将进入待注册模式。在这种情况下,断开连接并重新连接,使用正确的–fido-register-factor值完成注册。
注册是一个包括 启动注册 和 完成注册 步骤的两步过程。启动注册步骤执行以下语句:
ALTER USER *user* *factor* INITIATE REGISTRATION
该语句返回一个包含 32 字节挑战、用户名和依赖方 ID(参见 authentication_fido_rp_id)的结果集。
完成注册步骤执行以下语句:
ALTER USER *user* *factor* FINISH REGISTRATION SET CHALLENGE_RESPONSE AS \’*auth_string*\’
该语句完成注册并将以下信息作为 auth_string 的一部分发送到服务器:认证器数据,X.509 格式的可选证书,以及签名。
必须在单个连接中执行启动和注册步骤,因为客户端在启动步骤期间接收到的挑战会保存到客户端连接处理程序中。如果注册步骤由不同的连接执行,注册将失败。–fido-register-factor 选项执行启动和注册步骤,避免了上述失败场景,并避免了手动执行 ALTER USER 启动和注册语句。
–fido-register-factor 选项仅适用于 mysql 客户端和 MySQL Shell。其他 MySQL 客户端程序不支持该选项。
有关相关信息,请参阅使用 FIDO 认证。
–force, -f

命令行格式–force即使发生 SQL 错误,也继续执行。
–get-server-public-key

命令行格式–get-server-public-key类型布尔值从服务器请求用于 RSA 密钥对密码交换所需的公钥。此选项适用于使用caching_sha2_password认证插件进行身份验证的客户端。对于该插件,除非请求,否则服务器不会发送公钥。对于不使用该插件进行身份验证的帐户,此选项将被忽略。如果不使用基于 RSA 的密码交换(例如客户端使用安全连接连接到服务器时),此选项也将被忽略。
如果提供了–server-public-key-path=*file_name*并指定了有效的公钥文件,则它优先于–get-server-public-key。
有关caching_sha2_password插件的信息,请参阅第 8.4.1.2 节,“缓存 SHA-2 可插拔认证”。
–histignore

命令行格式–histignore=pattern_list类型字符串一个或多个以冒号分隔的模式列表,用于指定在记录日志时要忽略的语句。这些模式将添加到默认模式列表(\”*IDENTIFIED*:*PASSWORD*\”)中。为此选项指定的值会影响写入历史文件和syslog(如果给出了–syslog选项)的语句的记录。有关更多信息,请参阅第 6.5.1.3 节,“mysql 客户端日志记录”。
–host=*host_name*, -h *host_name*

命令行格式–host=host_name类型字符串默认值localhost连接到给定主机上的 MySQL 服务器。
如果同时给出 –dns-srv-name 选项和 –host 选项,则 –dns-srv-name 选项优先于 –host 选项。–dns-srv-name 导致连接建立使用 mysql_real_connect_dns_srv() C API 函数而不是 mysql_real_connect()。但是,如果在运行时随后使用 connect 命令并指定主机名参数,则该主机名优先于在 mysql 启动时给出的任何 –dns-srv-name 选项以指定 DNS SRV 记录。
–html, -H

命��行格式–html生成 HTML 输出。
–ignore-spaces, -i

命令行格式–ignore-spaces忽略函数名后的空格。其效果在IGNORE_SPACE SQL 模式的讨论中有描述(参见第 7.1.11 节,“服务器 SQL 模式”)。
–init-command=str

命令行格式–init-command=str连接到服务器后要执行的单个 SQL 语句。如果启用了自动重新连接,则在重新连接发生后再次执行该语句。
–line-numbers

命令行格式–line-numbers禁用者skip-line-numbers为错误写入行号。使用 –skip-line-numbers 禁用此功能。
–load-data-local-dir=*dir_name*

命令行格式–load-data-local-dir=dir_name引入版本8.0.21类型目录名称默认值空字符串此选项影响客户端端的 LOCAL 能力,用于 LOAD DATA 操作。它指定了 LOAD DATA LOCAL 语句中命名的文件必须位于的目录。–load-data-local-dir 的效果取决于是否启用或禁用了 LOCAL 数据加载:

如果启用了 LOCAL 数据加载,无论是在 MySQL 客户端库中默认启用还是通过指定 –local-infile[=1],都会忽略 –load-data-local-dir 选项。
如果禁用了LOCAL数据加载,无论是默认在 MySQL 客户端库中还是通过指定–local-infile=0,都会应用–load-data-local-dir选项。
当应用–load-data-local-dir时,选项值指定了必须位于其中的本地数据文件的目录。无论底层文件系统的大小写敏感性如何,目录路径名和要加载的文件的路径名的比较都是区分大小写的。如果选项值为空字符串,则不指定任何目录,结果是不允许进行本地数据加载。
例如,要显式禁用除位于/my/local/data目录中的文件之外的���地数据加载,请像这样调用mysql:
mysql –local-infile=0 –load-data-local-dir=/my/local/data
当同时给出–local-infile和–load-data-local-dir时,它们给出的顺序并不重要。
在mysql中成功使用LOCAL加载操作还需要服务器允许本地加载;请参阅第 8.1.6 节,“LOAD DATA LOCAL 的安全考虑”
–load-data-local-dir选项是在 MySQL 8.0.21 中添加的。
–local-infile[={0|1}]

命令行格式`–local-infile[={01}]`类型布尔值默认值FALSE默认情况下,LOAD DATA的LOCAL功能由编译到 MySQL 客户端库中的默认值确定。要显式启用或禁用LOCAL数据加载,请使用–local-infile选项。当不带值给出时,该选项启用LOCAL数据加载。当作为–local-infile=0或–local-infile=1给出时,该选项禁用或启用LOCAL数据加载。
如果禁用了LOCAL功能,则可以使用–load-data-local-dir选项来允许在指定目录中的文件进行受限制的本地加载。
在mysql中成功使用LOCAL加载操作还需要服务器允许本地加载;请参阅第 8.1.6 节,“LOAD DATA LOCAL 的安全考虑”
–login-path=*name*

命令行格式–login-path=name类型字符串从.mylogin.cnf登录路径文件中的命名登录路径读取选项。 “登录路径”是一个包含指定要连接的 MySQL 服务器和要进行身份验证的帐户的选项组。要创建或修改登录路径文件,请使用mysql_config_editor实用程序。请参见第 6.6.7 节,“mysql_config_editor — MySQL 配置实用程序”。
有关此选项和其他选项文件选项的更多信息,请参见第 6.2.2.3 节,“影响选项文件处理的命令行选项”。
–max-allowed-packet=*value*

命令行格式–max-allowed-packet=value类型数值默认值16777216客户端/服务器通信缓冲区的最大大小。默认值为 16MB,最大值为 1GB。
–max-join-size=*value*

命令行格式–max-join-size=value类型数值默认值1000000在使用–safe-updates时,连接中联接的行的自动限制。(默认值为 1,000,000。)
–named-commands, -G

命令行格式–named-commands被skip-named-commands禁用启用命名mysql命令。允许长格式命令,而不仅仅是短格式命令。例如,quit和\\q都被识别。使用–skip-named-commands来禁用命名命令。请参见第 6.5.1.2 节,“mysql 客户端命令”。
–net-buffer-length=*value*

命令行格式–net-buffer-length=value类型数值默认值16384TCP/IP 和套接字通信的缓冲区大小。(默认值为 16KB。)
–network-namespace=*name*

命令行格式–network-namespace=name引入版本8.0.22类型字符串用于 TCP/IP 连接的网络命名空间。如果省略,连接将使用默认(全局)命名空间。有关网络命名空间的信息,请参见第 7.1.14 节,“网络命名空间支持”。
此选项已添加到 MySQL 8.0.22 中。仅在实现网络命名空间支持的平台上可用。
–no-auto-rehash, -A

命令行格式–no-auto-rehash已弃用是这与–skip-auto-rehash具有相同的效果。请参阅–auto-rehash的描述。
–no-beep, -b

命令行格式–no-beep当发生错误时不发出蜂鸣声。
–no-defaults

命令行格式–no-defaults不要读取任何选项文件。如果程序启动失败是因为从选项文件中读取了未知选项,可以使用–no-defaults来阻止它们被读取。
例外情况是,如果存在.mylogin.cnf文件,则在所有情况下都会读取该文件。这允许以比在命令行上更安全的方式指定密码,即使使用–no-defaults也是如此。要创建.mylogin.cnf,请使用mysql_config_editor实用程序。请参阅第 6.6.7 节,“mysql_config_editor — MySQL 配置实用程序”。
有关此选项和其他选项文件选项的附加信息,请参阅第 6.2.2.3 节,“影响选项文件处理的命令行选项”。
–one-database, -o

命令行格式–one-database忽略除了在默认数据库为命令行上指定的数据库时发生的语句之外的所有语句。此选项是基本的,应谨慎使用。语句过滤仅基于USE语句。
最初,mysql执行输入中的语句,因为在命令行上指定一个数据库*db_name*等同于在输入开头插入USE *db_name*。然后,对于每个遇到的USE语句,mysql根据命令行上的数据库名接受或拒绝后续语句。语句的内容并不重要。
假设mysql被调用来处理这组语句:
DELETE FROM db2.t2;
USE db2;
DROP TABLE db1.t1;
CREATE TABLE db1.t1 (i INT);
USE db1;
INSERT INTO t1 (i) VALUES(1);
CREATE TABLE db2.t1 (j INT);
如果命令行是mysql –force –one-database db1,mysql处理输入如下:

DELETE 语句会被执行,因为默认数据库是 db1,尽管该语句指定了不同数据库中的表。
DROP TABLE 和 CREATE TABLE 语句不会被执行,因为默认数据库不是 db1,尽管这些语句指定了 db1 中的表。
INSERT 和 CREATE TABLE 语句会被执行,因为默认数据库是 db1,尽管 CREATE TABLE 语句指定了不同数据库中的表。
–pager[=*command*]

命令行格式–pager[=command]被 skip-pager 禁用–password[=password]类型字符串使用给定的命令来分页查询输出。如果省略命令,则默认分页器是您的 PAGER 环境变量的值。有效的分页器包括 less、more、cat [> filename] 等。此选项仅在 Unix 上以及仅在交互模式下有效。要禁用分页,请使用 –skip-pager。Section 6.5.1.2, “mysql Client Commands” 进一步讨论了输出分页。
–password[=*password*], -p[*password*]

命令行格式–password[=password]类型字符串用于连接到服务器的 MySQL 账户的密码。密码值是可选的。如果没有提供,mysql 会提示输入密码。如果提供了密码,–password= 或 -p 与后面的密码之间不能有空格。如果未指定密码选项,则默认情况下不发送密码。
在命令行上指定密码应被视为不安全。为了避免在命令行上提供密码,请使用选项文件。参见 Section 8.1.2.1, “End-User Guidelines for Password Security”。
要明确指定没有密码,并且 mysql 不应提示输入密码,使用 –skip-password 选项。
–password1[=*pass_val*]
用于连接到服务器的 MySQL 帐户的多因素认证因子 1 的密码。密码值是可选的。如果未给出,则mysql会提示输入密码。如果给出,则–password1=和后面的密码之间不能有空格。如果未指定密码选项,则默认情况下不发送密码。
在命令行上指定密码应被视为不安全。为了避免在命令行上提供密码,请使用选项文件。请参阅第 8.1.2.1 节,“密码安全的最终用户指南”。
要明确指定没有密码,并且mysql不应提示密码,请使用–skip-password1选项。
–password1和–password是同义词,–skip-password1和–skip-password也是同义词。
–password2[=*pass_val*]
用于连接到服务器的 MySQL 帐户的多因素认证因子 2 的密码。此选项的语义与–password1的语义类似;有关详细信息,请参阅该选项的描述。
–password3[=*pass_val*]
用于连接到服务器的 MySQL 帐户的多因素认证因子 3 的密码。此选项的语义与–password1的语义类似;有关详细信息,请参阅该选项的描述。
–pipe, -W

命令行格式–pipe类型字符串在 Windows 上,使用命名管道连接到服务器。此选项仅在服务器启动时启用了支持命名管道连接的named_pipe系统变量时才适用。此外,进行连接的用户必须是由named_pipe_full_access_group系统变量指定的 Windows 组的成员。
–plugin-authentication-kerberos-client-mode=*value*

命令行格式–plugin-authentication-kerberos-client-mode引入版本8.0.32类型字符串默认值SSPI有效值GSSAPI“SSPI在 Windows 上,authentication_kerberos_client认证插件支持此插件选项。它提供了两个客户端用户可以在运行时设置的可能值:SSPI和GSSAPI。
客户端端插件选项的默认值使用了 Security Support Provider Interface(SSPI),它能够从 Windows 内存缓存中获取凭据。另外,客户端用户可以选择支持通过 Windows 上的 MIT Kerberos 库使用 Generic Security Service Application Program Interface(GSSAPI)的模式。GSSAPI 能够获取先前使用kinit命令生成的缓存凭据。
更多信息,请参见在 GSSAPI 模式下的 Windows 客户端命令。
–plugin-dir=*dir_name*

命令行格式–plugin-dir=dir_name类型目录名称查找插件的目录。如果使用–default-auth选项指定了一个认证插件但mysql找不到它,请指定此选项。参见第 8.2.17 节,“可插拔认证”。
–port=*port_num*, -P *port_num*

命令行格式–port=port_num类型数字默认值3306用于 TCP/IP 连接的端口号。
–print-defaults

命令行格式–print-defaults打印程序名称以及从选项文件中获取的所有选项。
有关此选项和其他选项文件选项的更多信息,请参见第 6.2.2.3 节,“影响选项文件处理的命令行选项”。
–prompt=*format_str*

命令行格式–prompt=format_str类型字符串默认值mysql>将提示设置为指定的格式。默认值为mysql>。提示可以包含的特殊序列在第 6.5.1.2 节,“mysql 客户端命令”中描述。
–protocol={TCP|SOCKET|PIPE|MEMORY}

命令行格式–protocol=type类型字符串默认值[见文本]有效值TCP“SOCKET“PIPE“MEMORY用于连接到服务器的传输协议。当其他连接参数通常导致使用不希望使用的协议时,这很有用。有关允许值的详细信息,请参见第 6.2.7 节,“连接传输协议”。
–quick, -q

命令行格式–quick不要缓存每个查询结果,按接收顺序打印每行。如果输出被暂停,这可能会减慢服务器速度。使用此选项,mysql 不会使用历史文件。
默认情况下,mysql 在生成任何输出之前会获取所有结果行;在存储这些行时,它会从每一列的实际值中依次计算出最大列长度。在打印输出时,它会使用这个最大值来格式化输出。当指定 –quick 时,mysql 在开始之前没有行来计算长度,因此使用最大长度。在下面的示例中,表 t1 有一个类型为 BIGINT – INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT\”) 的单列,包含 4 行。默认输出宽度为 9 个字符;这个宽度等于返回行中任何列值中的最大字符数(5),再加上用作填充的空格和用作列分隔符的 | 字符,每个都是 2 个字符)。使用 –quick 选项时的输出宽度为 25 个字符;这等于表示 -9223372036854775808 所需的字符数,这是可以存储在(有符号的)BIGINT 列中的最长可能值,或者是 19 个字符,再加上用于填充和列分隔符的 4 个字符。可以在这里看到差异:
$> mysql -t test -e \”SELECT * FROM t1\”
+——-+
| c1 |
+——-+
| 100 |
| 1000 |
| 10000 |
| 10 |
+——-+
$> mysql –quick -t test -e \”SELECT * FROM t1\”
+———————-+
| c1 |
+———————-+
| 100 |
| 1000 |
| 10000 |
| 10 |
+———————-+
–raw, -r

命令行格式–raw对于表格输出,围绕列的“框”使得一个列值可以与另一个区分开。对于非表格输出(例如在批处理模式下生成的输出或给出 –batch 或 –silent 选项时生成的输出),特殊字符在输出中被转义,以便可以轻松识别它们。换行符、制表符、NUL 和反斜杠分别被写为 \\n、\\t、\\0 和 \\\\。–raw 选项禁用了这种字符转义。
以下示例演示了表格与非表格输出以及使用原始模式禁用转义的情况:
% mysql
mysql> SELECT CHAR(92);
+———-+
| CHAR(92) |
+———-+
| \\ |
+———-+
% mysql -s
mysql> SELECT CHAR(92);
CHAR(92)
\\\\
% mysql -s -r
mysql> SELECT CHAR(92);
CHAR(92)
\\
–reconnect

命令行格式–reconnect禁用者skip-reconnect如果与服务器的连接丢失,自动尝试重新连接。每次连接丢失时都会尝试重新连接一次。要抑制重新连接行为,请使用 –skip-reconnect。
–safe-updates, –i-am-a-dummy, -U

命令行格式–safe-updates“–i-am-a-dummy类型布尔值默认值FALSE如果启用此选项,则不使用 WHERE 子句中的键或 LIMIT 子句的 UPDATE 和 DELETE 语句将产生错误。此外,对于产生(或估计产生)非常大结果集的 SELECT 语句也会施加限制。如果在选项文件中设置了此选项,则可以在命令行上使用 –skip-safe-updates 来覆盖它。有关此选项的更多信息,请参见 使用安全更新模式 (–safe-updates)\”)。
–select-limit=*value*

命令行格式–select-limit=value类型数值默认值1000当使用 –safe-updates 时,SELECT 语句的自动限制。(默认值为 1,000)。
–server-public-key-path=*file_name*

命令行格式–server-public-key-path=file_name类型文件名PEM 格式文件路径名,其中包含服务器所需的客户端端公钥的副本,用于 RSA 密钥对密码交换。此选项适用于使用 sha256_password 或 caching_sha2_password 认证插件进行身份验证的客户端。对于不使用这些插件进行身份验证的帐户,此选项将被忽略。如果不使用基于 RSA 的密码交换,例如客户端使用安全连接连接到服务器时,此选项也将被忽略。
如果给定 –server-public-key-path=*file_name* 并指定有效的公钥文件,则优先于 –get-server-public-key。
对于 sha256_password,此选项仅在使用 OpenSSL 构建 MySQL 时适用。
有关 sha256_password 和 caching_sha2_password 插件的信息,请参见 第 8.4.1.3 节,“SHA-256 可插拔认证” 和 第 8.4.1.2 节,“缓存 SHA-2 可插拔认证”。
–shared-memory-base-name=*name*

命令行格式–shared-memory-base-name=name特定平台Windows在 Windows 上,用于使用共享内存进行到本地服务器的连接的共享内存名称。默认值为MYSQL。共享内存名称区分大小写。
只有在服务器启动时启用了支持共享内存连接的shared_memory系统变量时,此选项才适用。
–show-warnings

命令行格式–show-warnings导致在每个语句后显示警告(如果有)。此选项适用于交互和批处理模式。
–sigint-ignore

命令行格式–sigint-ignore忽略SIGINT信号(通常是键入Control+C的结果)。
如果没有此选项,键入Control+C会中断当前语句(如果有的话),否则会取消任何部分输入行。
–silent,-s

命令行格式–silent静默模式。产生较少输出。可以多次使用此选项以产生越来越少的输出。
此选项会导致非表格输出格式和特殊字符的转义。可以通过使用原始模式来禁用转义;请参阅–raw选项的描述。
–skip-column-names,-N

命令行格式–skip-column-names不在结果中写入列名。使用此选项会导致输出右对齐,如下所示:
$> echo \”SELECT * FROM t1\” | mysql -t test
+——-+
| c1 |
+——-+
| a,c,d |
| c |
+——-+
$> echo \”SELECT * FROM t1\” | ./mysql -uroot -Nt test
+——-+
| a,c,d |
| c |
+——-+
–skip-line-numbers,-L

命令行格式–skip-line-numbers不为错误写入行号。在想要比较包含错误消息的结果文件时很有用。
–socket=*路径*,-S *路径*

命令行格式–socket={file_name|pipe_name}类型字符串对于连接到localhost的连接,要使用的 Unix 套接字文件,或者在 Windows 上,要使用的命名管道的名称。
在 Windows 上,只有在服务器启动时启用了支持命名管道连接的named_pipe系统变量时,此选项才适用。此外,进行连接的用户必须是由named_pipe_full_access_group系统变量指定的 Windows 组的成员。
–ssl*
以–ssl开头的选项指定是否使用加密连接到服务器,并指示在哪里找到 SSL 密钥和证书。请参阅加密连接的命令选项。
–ssl-fips-mode={OFF|ON|STRICT}

命令行格式–ssl-fips-mode={OFF|ON|STRICT}已弃用8.0.34类型枚举默认值OFF有效值OFF“ON“STRICT控制是否在客户端端启用 FIPS 模式。–ssl-fips-mode 选项与其他 –ssl-*xxx* 选项不同,它不用于建立加密连接,而是用于影响允许哪些加密操作。请参阅 第 8.8 节,“FIPS 支持”。
允许使用这些 –ssl-fips-mode 值:

OFF: 禁用 FIPS 模式。
ON: 启用 FIPS 模式。
STRICT: 启用“严格” FIPS 模式。
注意
如果 OpenSSL FIPS 对象模块不可用,则 –ssl-fips-mode 的唯一允许值是 OFF。在这种情况下,将 –ssl-fips-mode 设置为 ON 或 STRICT 会导致客户端在启动时产生警告并在非 FIPS 模式下运行。
从 MySQL 8.0.34 开始,此选项已弃用。预计在将来的 MySQL 版本中将其移除。
–syslog, -j

命令行格式–syslog此选项导致 mysql 将交互语句发送到系统日志设施。在 Unix 上,这是 syslog;在 Windows 上,这是 Windows 事件日志。记录消息出现的目的地取决于系统。在 Linux 上,目的地通常是 /var/log/messages 文件。
这是在 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;\’
更多信息,请参阅 第 6.5.1.3 节,“mysql 客户端日志记录”。
–table, -t

命令行格式–table以表格格式显示输出。这是交互使用的默认设置,但也可用于在批处理模式下生成表格输出。
–tee=*file_name*

命令行格式–tee=file_name类型文件名将输出的副本附加到给定文件。此选项仅在交互模式下有效。第 6.5.1.2 节,“mysql 客户端命令”,进一步讨论了 tee 文件。
–tls-ciphersuites=*ciphersuite_list*

命令行格式–tls-ciphersuites=ciphersuite_list引入8.0.16类型字符串用于使用 TLSv1.3 的加密连接的可接受密码套件。该值是一个或多个冒号分隔的密码套件名称列表。可以为此选项命名的密码套件取决于用于编译 MySQL 的 SSL 库。有关详细信息,请参见第 8.3.2 节,“加密连接 TLS 协议和密码”。
此选项在 MySQL 8.0.16 中添加。
–tls-version=*protocol_list*

命令行格式–tls-version=protocol_list类型字符串默认值(≥ 8.0.16)TLSv1,TLSv1.1,TLSv1.2,TLSv1.3(OpenSSL 1.1.1 或更高版本)TLSv1,TLSv1.1,TLSv1.2(否则)默认值(≤ 8.0.15)TLSv1,TLSv1.1,TLSv1.2用于加密连接的可接受 TLS 协议。该值是一个或多个逗号分隔的协议名称列表。可以为此选项命名的协议取决于用于编译 MySQL 的 SSL 库。有关详细信息,请参见第 8.3.2 节,“加密连接 TLS 协议和密码”。
–unbuffered, -n

命令行格式–unbuffered在每个查询后刷新缓冲区。
–user=*user_name*, -u *user_name*

命令行格式–user=user_name类型字符串用于连接到服务器的 MySQL 帐户的用户名。
–verbose, -v

命令行格式–verbose冗长模式。产生关于程序操作的更多输出。可以多次使用此选项以产生更多输出。(例如,-v -v -v即使在批处理模式下也会产生表格输出格式。)
–version, -V

命令行格式–version显示版本信息并退出。
–vertical, -E

命令行格式–vertical将查询输出行垂直显示(每列值一行)。如果不使用此选项,可以通过在语句末尾加上\\G来指定单个语句的垂直输出。
–wait, -w

命令行格式–wait如果无法建立连接,则等待并重试,而不是中止。
–xml, -X

命令行格式–xml生成 XML 输出。
<field name=\”*column_name*\”>NULL</field>
当使用 –xml 与 mysql 一起使用时,输出与 mysqldump –xml 的匹配。详情请参见 第 6.5.4 节,“mysqldump — 数据库备份程序”。
XML 输出还使用 XML 命名空间,如下所示:
$> mysql –xml -uroot -e \”SHOW VARIABLES LIKE \’version%\’\”
<?xml version=\”1.0\”?>
<resultset statement=\”SHOW VARIABLES LIKE \’version%\’\” xmlns:xsi=\”http://www.w3.org/2001/XMLSchema-instance\”>
<row>
<field name=\”Variable_name\”>version</field>
<field name=\”Value\”>5.0.40-debug</field>
</row>
<row>
<field name=\”Variable_name\”>version_comment</field>
<field name=\”Value\”>Source distribution</field>
</row>
<row>
<field name=\”Variable_name\”>version_compile_machine</field>
<field name=\”Value\”>i686</field>
</row>
<row>
<field name=\”Variable_name\”>version_compile_os</field>
<field name=\”Value\”>suse-linux-gnu</field>
</row>
</resultset>
–zstd-compression-level=*level*

命令行格式–zstd-compression-level=#引入版本8.0.18类型整数用于使用zstd压缩算法连接到服务器的连接的压缩级别。允许的级别为 1 到 22,较大的值表示较高级别的压缩。默认的zstd压缩级别为 3。压缩级别设置对不使用zstd压缩的连接没有影响。
更多信息,请参见 第 6.2.8 节,“连接压缩控制”。
此选项在 MySQL 8.0.18 中添加。

原文:dev.mysql.com/doc/refman/8.0/en/mysql-commands.html

6.5.1.2 mysql 客户端命令

mysql将您发出的每个 SQL 语句发送到服务器执行。还有一组mysql本身解释的命令。要查看这些命令的列表,请在mysql>提示符处键入help或\\h:

mysql> help
List of all MySQL commands:
Note that all text commands must be first on line and end with \’;\’
? (\\?) Synonym for `help\’.
clear (\\c) Clear the current input statement.
connect (\\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\\d) Set statement delimiter.
edit (\\e) Edit command with $EDITOR.
ego (\\G) Send command to mysql server, display result vertically.
exit (\\q) Exit mysql. Same as quit.
go (\\g) Send command to mysql server.
help (\\h) Display this help.
nopager (\\n) Disable pager, print to stdout.
notee (\\t) Don\’t write into outfile.
pager (\\P) Set PAGER [to_pager]. Print the query results via PAGER.
print (\\p) Print current command.
prompt (\\R) Change your mysql prompt.
quit (\\q) Quit mysql.
rehash (\\#) Rebuild completion hash.
source (\\.) Execute an SQL script file. Takes a file name as an argument.
status (\\s) Get status information from the server.
system (\\!) Execute a system shell command.
tee (\\T) Set outfile [to_outfile]. Append everything into given
outfile.
use (\\u) Use another database. Takes database name as argument.
charset (\\C) Switch to another charset. Might be needed for processing
binlog with multi-byte charsets.
warnings (\\W) Show warnings after every statement.
nowarning (\\w) Don\’t show warnings after every statement.
resetconnection(\\x) Clean session context.
query_attributes Sets string parameters (name1 value1 name2 value2 …)
for the next query to pick up.
ssl_session_data_print Serializes the current SSL session data to stdout
or file.
For server side help, type \’help contents\’

如果使用–binary-mode选项调用mysql,除了非交互模式下的charset和delimiter命令外,所有mysql命令都被禁用(用于输入到mysql或使用source命令加载的情况)。

每个命令都有长格式和短格式。长格式不区分大小写;短格式区分大小写。长格式可以跟随可选的分号终止符,但短格式不应该。

多行/* … */注释中不支持使用短格式命令。单行/*! … */版本注释中可以使用短格式命令,/*+ … */提示优化器的注释也可以使用,这些注释存储在对象定义中。如果担心优化器提示注释可能存储在对象定义中,导致重新加载时使用mysql执行这些命令,要么使用带有–binary-mode选项调用mysql,要么使用除mysql之外的重新加载客户端。

help [*arg*], \\h [*arg*], \\? [*arg*], ? [*arg*]
显示列出可用mysql命令的帮助消息。
如果向help命令提供参数,mysql将其用作搜索字符串,以从 MySQL 参考手册的内容中访问服务器端帮助。更多信息,请参阅 Section 6.5.1.4, “mysql Client Server-Side Help”。
charset *charset_name*, \\C *charset_name*
更改默认字符集并发出SET NAMES语句。如果mysql以启用自动重新连接的方式运行(不建议),因为指定的字符集用于重新连接,所以客户端和服务器上的字符集保持同步。
clear, \\c
清除当前输入。如果更改主意不执行正在输入的语句,请使用此选项。
connect [*db_name* [*host_name*]], \\r [*db_name* [*host_name*]]
重新连接到服务器。可以提供可选的数据库名称和主机名参数以指定默认数据库或运行服务器的主机。如果省略,则使用当前值。
如果connect命令指定了主机名参数,则该主机优先于在mysql启动时指定的任何–dns-srv-name选项来指定 DNS SRV 记录。
delimiter *str*, \\d *str*
更改mysql解释为 SQL 语句之间的分隔符的字符串。默认为分号字符(;)。
分隔符字符串可以在delimiter命令行上指定为未引用或引用的参数。引用可以使用单引号(\’)、双引号(\”)或反引号(“`sql) characters. To include a quote within a quoted string, either quote the string with a different quote character or escape the quote with a backslash (\\) character. Backslash should be avoided outside of quoted strings because it is the escape character for MySQL. For an unquoted argument, the delimiter is read up to the first space or end of line. For a quoted argument, the delimiter is read up to the matching quote on the line.
mysql interprets instances of the delimiter string as a statement delimiter anywhere it occurs, except within quoted strings. Be careful about defining a delimiter that might occur within other words. For example, if you define the delimiter as X, it is not possible to use the word INDEX in statements. mysql interprets this as INDE followed by the delimiter X.
When the delimiter recognized by mysql is set to something other than the default of ;, instances of that character are sent to the server without interpretation. However, the server itself still interprets ; as a statement delimiter and processes statements accordingly. This behavior on the server side comes into play for multiple-statement execution (see Multiple Statement Execution Support), and for parsing the body of stored procedures and functions, triggers, and events (see Section 27.1, “Defining Stored Programs”).

edit, \\e
Edit the current input statement. mysql checks the values of the EDITOR and VISUAL environment variables to determine which editor to use. The default editor is vi if neither variable is set.
The edit command works only in Unix.
ego, \\G
Send the current statement to the server to be executed and display the result using vertical format.
exit, \\q
Exit mysql.
go, \\g
Send the current statement to the server to be executed.
nopager, \\n
Disable output paging. See the description for pager.
The nopager command works only in Unix.
notee, \\t
Disable output copying to the tee file. See the description for tee.
nowarning, \\w
Disable display of warnings after each statement.
pager [*command*], \\P [*command*]
Enable output paging. By using the –pager option when you invoke mysql, it is possible to browse or search query results in interactive mode with Unix programs such as less, more, or any other similar program. If you specify no value for the option, mysql checks the value of the PAGER environment variable and sets the pager to that. Pager functionality works only in interactive mode.
Output paging can be enabled interactively with the pager command and disabled with nopager. The command takes an optional argument; if given, the paging program is set to that. With no argument, the pager is set to the pager that was set on the command line, or stdout if no pager was specified.
Output paging works only in Unix because it uses the popen() function, which does not exist on Windows. For Windows, the tee option can be used instead to save query output, although it is not as convenient as pager for browsing output in some situations.
print, \\p
Print the current input statement without executing it.
prompt [*str*], \\R [*str*]
Reconfigure the mysql prompt to the given string. The special character sequences that can be used in the prompt are described later in this section.
If you specify the prompt command with no argument, mysql resets the prompt to the default of mysql>.
query_attributes *name* *value* [*name* *value* …]
Define query attributes that apply to the next query sent to the server. For discussion of the purpose and use of query attributes, see Section 11.6, “Query Attributes”.
The query_attributes command follows these rules:

The format and quoting rules for attribute names and values are the same as for the delimiter command.
The command permits up to 32 attribute name/value pairs. Names and values may be up to 1024 characters long. If a name is given without a value, an error occurs.
If multiple query_attributes commands are issued prior to query execution, only the last command applies. After sending the query, mysql clears the attribute set.
If multiple attributes are defined with the same name, attempts to retrieve the attribute value have an undefined result.
An attribute defined with an empty name cannot be retrieved by name.
If a reconnect occurs while mysql executes the query, mysql restores the attributes after reconnecting so the query can be executed again with the same attributes.
quit, \\q
Exit mysql.
rehash, \\#
Rebuild the completion hash that enables database, table, and column name completion while you are entering statements. (See the description for the –auto-rehash option.)
resetconnection, \\x
Reset the connection to clear the session state. This includes clearing any current query attributes defined using the query_attributes command.
Resetting a connection has effects similar to mysql_change_user() or an auto-reconnect except that the connection is not closed and reopened, and re-authentication is not done. See mysql_change_user(), and Automatic Reconnection Control.
This example shows how resetconnection clears a value maintained in the session state:

mysql> SELECT LAST_INSERT_ID(3);
+——————-+
| LAST_INSERT_ID(3) |
| — |
+——————-+
| 3 |
| — |
+——————-+
mysql> SELECT LAST_INSERT_ID();
+——————+
| LAST_INSERT_ID() |
| — |
+——————+
| 3 |
| — |
+——————+
mysql> resetconnection;
mysql> SELECT LAST_INSERT_ID();
+——————+
| LAST_INSERT_ID() |
| — |
+——————+
| 0 |
| — |
+——————+
“`sql
source *file_name*, \\. *file_name*
Read the named file and executes the statements contained therein. On Windows, specify path name separators as / or \\\\.
Quote characters are taken as part of the file name itself. For best results, the name should not include space characters.
ssl_session_data_print [*file_name*]
Fetches, serializes, and optionally stores the session data of a successful connection. The optional file name and arguments may be given to specify the file to store serialized session data. If omitted, the session data is printed to stdout.
If the MySQL session is configured for reuse, session data from the file is deserialized and supplied to the connect command to reconnect. When the session is reused successfully, the status command contains a row showing SSL session reused: true while the client remains reconnected to the server.
status, \\s
Provide status information about the connection and the server you are using. If you are running with –safe-updates enabled, status also prints the values for the mysql variables that affect your queries.
system *command*, \\! *command*
Execute the given command using your default command interpreter.
Prior to MySQL 8.0.19, the system command works only in Unix. As of 8.0.19, it also works on Windows.
tee [*file_name*], \\T [*file_name*]
By using the –tee option when you invoke mysql, you can log statements and their output. All the data displayed on the screen is appended into a given file. This can be very useful for debugging purposes also. mysql flushes results to the file after each statement, just before it prints its next prompt. Tee functionality works only in interactive mode.
You can enable this feature interactively with the tee command. Without a parameter, the previous file is used. The tee file can be disabled with the notee command. Executing tee again re-enables logging.
use *db_name*, \\u *db_name*
Use db_name as the default database.
warnings, \\W
Enable display of warnings after each statement (if there are any).

Here are a few tips about the pager command:

You can use it to write to a file and the results go only to the file:

mysql> pager cat > /tmp/log.txt
“`sql
You can also pass any options for the program that you want to use as your pager:
mysql> pager less -n -i -S

In the preceding example, note the -S option. You may find it very useful for browsing wide query results. Sometimes a very wide result set is difficult to read on the screen. The -S option to less can make the result set much more readable because you can scroll it horizontally using the left-arrow and right-arrow keys. You can also use -S interactively within less to switch the horizontal-browse mode on and off. For more information, read the less manual page:

人少
“`sql
The -F and -X options may be used with less to cause it to exit if output fits on one screen, which is convenient when no scrolling is necessary:

mysql> pager less -n -i -S -F -X
“`sql
You can specify very complex pager commands for handling query output:

mysql> pager cat | tee /dr1/tmp/res.txt \\
| tee /dr2/tmp/res2.txt | less -n -i -S
“`sql
In this example, the command would send query results to two files in two different directories on two different file systems mounted on `/dr1` and `/dr2`, yet still display the results onscreen using **less**.

You can also combine the tee and pager functions. Have a tee file enabled and pager set to less, and you are able to browse the results using the less program and still have everything appended into a file the same time. The difference between the Unix tee used with the pager command and the mysql built-in tee command is that the built-in tee works even if you do not have the Unix tee available. The built-in tee also logs everything that is printed on the screen, whereas the Unix tee used with pager does not log quite that much. Additionally, tee file logging can be turned on and off interactively from within mysql. This is useful when you want to log some queries to a file, but not others.

The prompt command reconfigures the default mysql> prompt. The string for defining the prompt can contain the following special sequences.

| Option | Description |
| \\C | The current connection identifier |
| \\c | A counter that increments for each statement you issue |
| \\D | The full current date |
| \\d | The default database |
| \\h | The server host |
| \\l | The current delimiter |
| \\m | Minutes of the current time |
| \\n | A newline character |
| \\O | The current month in three-letter format (Jan, Feb, …) |
| \\o | The current month in numeric format |
| \\P | am/pm |
| \\p | The current TCP/IP port or socket file |
| \\R | The current time, in 24-hour military time (0–23) |
| \\r | The current time, standard 12-hour time (1–12) |
| \\S | Semicolon |
| \\s | Seconds of the current time |
| \\T | Print an asterisk (*) if the current session is inside a transaction block (from MySQL 8.0.28) |
| \\t | A tab character |
| \\U | Your full *user_name*@*host_name* account name |
| \\u | Your user name |
| \\v | The server version |
| \\w | The current day of the week in three-letter format (Mon, Tue, …) |
| \\Y | The current year, four digits |
| \\y | The current year, two digits |
| \\_ | A space |
| \\ | A space (a space follows the backslash) |
| \\\’ | Single quote |
| \\\” | Double quote |
| \\\\ | A literal \\ backslash character |
| \\*x* | x, for any “x” not listed above |

| Option | Description |

You can set the prompt in several ways:

Use an environment variable. You can set the MYSQL_PS1 environment variable to a prompt string. For example:

export MYSQL_PS1=\”(\\u@\\h) [\\d]> \”
“`sql
Use a command-line option. You can set the –prompt option on the command line to mysql. For example:

$> mysql –prompt=\”(\\u@\\h) [\\d]> \”
(user@host) [database]>
“`sql
Use an option file. You can set the prompt option in the [mysql] group of any MySQL option file, such as /etc/my.cnf or the .my.cnf file in your home directory. For example:

[mysql]
prompt=(\\\\u@\\\\h) [\\\\d]>\\\\_
“`sql
In this example, note that the backslashes are doubled. If you set the prompt using the `prompt` option in an option file, it is advisable to double the backslashes when using the special prompt options. There is some overlap in the set of permissible prompt options and the set of special escape sequences that are recognized in option files. (The rules for escape sequences in option files are listed in Section 6.2.2.2, “Using Option Files”.) The overlap may cause you problems if you use single backslashes. For example, `\\s` is interpreted as a space rather than as the current seconds value. The following example shows how to define a prompt within an option file to include the current time in `*`hh:mm:ss`*>` format:
[mysql]
prompt=\”\\r:\\m:\\s> \”

Set the prompt interactively. You can change your prompt interactively by using the prompt (or \\R) command. For example:

mysql> prompt (\\u@\\h) [\\d]>\\_
PROMPT 设置为\'(\\u@\\h) [\\d]>\\_\’
(*user*@*host*) [*database*]>
(*user*@*host*) [*database*]> prompt
返回到默认的 mysql 提示>
mysql>

#以上关于MySQL8 中文参考(十)的相关内容来源网络仅供参考,相关信息请以官方公告为准!

原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/92356.html

Like (0)
CSDN的头像CSDN
Previous 2024年6月26日
Next 2024年6月26日

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注