MySQL 外壳 8.0  / 第 13 章自定义 MySQL Shell  /  13.4 配置 MySQL Shell 选项

13.4 配置 MySQL Shell 选项

您可以配置 MySQL Shell 以匹配您的偏好,例如启动某种编程语言或提供特定格式的输出。可以仅为当前会话设置配置选项,或者可以通过对 MySQL Shell 配置文件的持久更改来永久设置选项。提供了所有选项的在线帮助。您可以使用 MySQL Shell \option命令配置选项,该命令在所有 MySQL Shell 模式下都可用,用于查询和更改配置选项。或者,在 JavaScript 和 Python 模式下,使用 shell.options对象。

有效的配置选项

可以使用 \option命令或 shell.options脚本界面设置以下配置选项:

选项名称 默认值 类型 影响
autocomplete.nameCache 真的 布尔值 为自动完成启用数据库名称缓存。
batchContinueOnError 错误的 布尔值(只读) 在 SQL 批处理模式下,如果发现错误,则强制继续处理。
connectTimeout 10 大于 0 的浮点数 任何不使用 AdminAPI 的会话连接超时之前等待的时间(以秒为单位)。
credentialStore.excludeFilters 空的 大批 禁用自动密码存储的 URL 数组,支持 glob 字符*?.
credentialStore.helper 取决于平台 细绳 用于获取或存储密码的凭证助手的名称。支持特殊值default以使用平台的默认助手。特殊值 disabled禁用凭据存储。
credentialStore.savePasswords 迅速的 细绳 控制自动密码存储,支持的值: alwayspromptnever
dba.connectTimeout 5个 大于 0 的浮点数 使用 AdminAPI 的任何会话连接超时之前等待的时间(以秒为单位)。
dba.gtidWaitTimeout 60 大于 0 的整数 在 AdminAPI 操作需要时等待应用 GTID 事务的时间(以秒为单位)(请参阅 第 7.9 节,“修改或解散 InnoDB 集群”)。
dba.logSql(在 MySQL Shell 8.0.30 中已弃用。请 logSql改用。) 0 0 到 2 之间的整数 记录由 AdminAPI 操作执行的 SQL 语句(请参阅 第 12 章,MySQL Shell 日志记录和调试)。
dba.restartWaitTimeout 60 大于 0 的整数 在恢复操作期间等待应用事务的时间(以秒为单位)。当加入的实例必须恢复大量数据时,用于配置更长的超时时间。请参阅 第 7.4.6 节,“将 MySQL 克隆与 InnoDB Cluster 一起使用”)。
defaultCompress 错误的 布尔值 请求压缩每个全局会话中客户端和服务器之间发送的信息。仅影响经典 MySQL 协议连接(请参阅 第 4.3.6 节,“使用压缩连接”)。
defaultMode 没有任何 字符串(sql、js 或 py) 启动 MySQL Shell 时使用的模式(SQL、JavaScript 或 Python)。
devapi.dbObjectHandles 真的 布尔值 为 X DevAPI db对象启用表和集合名称句柄。
fenceAllTraffic() 没有任何 细绳 从所有流量中隔离集群(请参阅 InnoDB ClusterSet 中的隔离集群)。
fenceWrites() 没有任何 细绳 停止向 ClusterSet 的主集群写入流量。副本集群不接受写入,因此此操作对它们没有影响(请参阅 InnoDB ClusterSet 中的 Fencing Clusters)。
unfenceWrites() 没有任何 细绳 恢复写入流量。此操作可以在先前使用该 cluster.fenceWrites操作隔离写入流量的集群上运行(请参阅 InnoDB ClusterSet 中的隔离集群)。
history.autoSave 错误的 布尔值 退出应用程序时保存 (true) 或清除 (false) MySQL Shell 代码历史记录中的条目(请参阅 第 5.5 节,“代码历史记录”)。
history.maxSize 1000 整数 要存储在 MySQL Shell 代码历史记录中的最大条目数。
history.sql.ignorePattern *已识别*:*密码* 细绳 与这些模式匹配的字符串不会添加到 MySQL Shell 代码历史记录中。
history.sql.syslog 错误的 布尔值 将交互式 SQL 语句发送到操作系统的系统日志记录工具(请参阅 第 12.3 节,“用户 SQL 语句的系统日志记录”)。
interactive 真的 布尔值(只读) 启用交互模式。
logLevel 需要一个值 整数范围从 1 到 8 或 none、internal、error、warning、info、debug、debug2、debug3 中的任何一个 为应用程序日志设置日志记录级别(请参阅 第 12 章,MySQL Shell 日志记录和调试)。
logSql 错误 字符串(关闭、错误、打开、未过滤) 记录由 MySQL Shell 操作执行的 SQL 语句(请参阅 第 12.4 节,“MySQL Shell SQL 日志记录”)。该日志选项不记录从 SQL 模式交互执行的用户 SQL 语句,仅记录 MySQL Shell 操作执行的 SQL 语句。
logSql.ignorePattern SELECT*:SHOW*:*IDENTIFIED*:*PASSWORD* 细绳 指定以冒号分隔的 glob 模式列表以过滤掉记录的 SQL 语句logSql(请参阅 第 12.4 节,“MySQL Shell SQL 日志记录”)。
mysqlPluginDir 没有任何 细绳 设置 MySQL 服务器插件目录的持久路径。当使用服务器附带的客户端插件进行身份验证时,指定该路径。
pager 没有任何 细绳 使用指定的外部分页器工具显示文本和结果。可以添加该工具的命令行参数(请参阅 第 4.6 节“使用寻呼机”)。
passwordsFromStdin 错误的 布尔值 stdin从而不是终端读取密码。
resultFormat 桌子 字符串(表格、选项卡式、垂直、json | json/pretty、ndjson | json/raw、json/array) 打印结果集的默认输出格式(请参阅 第 5.7 节,“输出格式”)。
sandboxDir 取决于平台 细绳 沙箱目录。在 Windows 上,默认值为 C:\Users\MyUser\MySQL\mysql-sandboxes,在 Unix 系统上,默认值为 $HOME/mysql-sandboxes.
showColumnTypeInfo 错误的 布尔值 在 SQL 模式下,显示结果集的列元数据。
showWarnings 真的 布尔值 在 SQL 模式下,如果有 SQL 警告,则自动显示。
ssh.bufferSize 10240 大于 0 的整数 通过 SSH 隧道传输数据的缓冲区大小(以字节为单位)(请参阅 第 4.3.5 节,“使用 SSH 隧道”)。
ssh.configFile 空的 细绳 将标准 SSH 配置文件替换~/.ssh/config为 SSH 隧道默认设置的自定义 SSH 配置文件的路径(请参阅 第 4.3.5 节,“使用 SSH 隧道”)。
useWizards 真的 布尔值 启用向导模式。
verbose 1个 0 到 4 之间的整数 启用到控制台的详细输出并设置详细程度(请参阅 第 12 章,MySQL Shell 日志记录和调试)。
笔记

字符串值区分大小写。

不能修改 列为只读”的选项。

outputFormat选项现已弃用。改用resultFormat

使用\option命令

MySQL Shell\option命令使您能够在所有模式下查询和更改配置选项,除了 JavaScript 和 Python 模式之外,还可以从 SQL 模式进行配置。

该命令使用如下:

  • \option -h, --help [filter]- 打印选项匹配的帮助filter

  • \option -l, --list [--show-origin]- 列出所有选项。--show-origin使用有关值最后如何更改的信息扩充列表,可能的值是:

    • Command line

    • Compiled default

    • Configuration file

    • Environment variable

    • User defined

  • \option option_name- 打印选项的当前值。

  • \option [--persist] option_name value or name=value- 设置选项的值,如果--persist指定,将其保存到配置文件。

  • \option --unset [--persist] <option_name>- 将选项的值重置为默认值,如果--persist指定,则从 MySQL Shell 配置文件中删除该选项。

笔记

option_name和 的值filter区分大小写。

有关的可能值列表, 请参阅有效配置选项option_name

使用shell.options配置界面

shell.options对象在 JavaScript 和 Python 模式下可用,以更改 MySQL Shell 选项值。您可以使用特定方法配置选项或键值对,如下所示:

MySQL JS > shell.options['history.autoSave']=1

除了键值对接口,还有以下方法可用:

  • shell.options.set(optionName, value)- 为此会话设置为,更改不会保存到配置文件中 optionNamevalue

  • shell.options.setPersist(optionName, value)- 为此会话设置 optionNamevalue,并将更改保存到配置文件。在 Python 模式下,方法是shell.options.set_persist.

  • shell.options.unset(optionName) - 将此会话重置optionName为默认值,更改不会保存到配置文件中。

  • shell.options.unsetPersist(optionName) - 将此会话重置optionName为默认值,并将更改保存到配置文件。在 Python 模式下,方法是 shell.options.unset_persist.

选项名称被视为字符串,因此应该被'字符包围。有关的可能值列表, 请参阅 有效配置选项optionName

使用命令配置 MySQL Shell 选项,如下所示:

MySQL JS > shell.options.set('history.maxSize', 5000)
MySQL JS > shell.options.setPersist('useWizards', 'true')
MySQL JS > shell.options.setPersist('history.autoSave', 1)

将选项返回到它们的默认值,如下所示:

MySQL JS > shell.options.unset('history.maxSize')
MySQL JS > shell.options.unsetPersist('useWizards')

配置文件

MySQL Shell 配置文件存储选项的值以确保它们在会话中保持不变。值在启动时读取,当您使用持久化功能时,设置会保存到配置文件中。

配置文件所在位置为用户配置路径,文件名为options.json. 假设没有通过定义环境变量覆盖默认的用户配置路径 MYSQLSH_USER_CONFIG_HOME,则配置文件的路径为:

  • 在 Windows 上%APPDATA%\MySQL\mysqlsh

  • 在 Unix~/.mysqlsh上,其中 ~代表用户的主目录。

配置文件是在您第一次自定义配置选项时创建的。此文件由 MySQL Shell 内部维护,不应手动编辑。如果启动时在配置文件中发现无法识别的选项或值不正确的选项,则MySQL Shell 会报错退出。