您可以配置 MySQL Shell 以匹配您的偏好,例如启动到特定编程语言或以特定格式提供输出。配置选项可以仅为当前会话设置,也可以通过将更改持久保存到 MySQL Shell 配置文件来永久设置。所有选项的联机帮助均已提供。您可以使用 MySQL Shell \option
命令来配置选项,该命令在所有 MySQL Shell 模式下均可用以查询和更改配置选项。或者,在 JavaScript 和 Python 模式下,使用 shell.options
对象。
以下配置选项可以使用 \option
命令或 shell.options
脚本接口进行设置
选项名称 | 默认值 | 类型 | 效果 |
---|---|---|---|
autocomplete.nameCache |
true | boolean | 启用数据库名称缓存以进行自动完成。 |
batchContinueOnError |
false | boolean (只读) | 在 SQL 批处理模式下,如果发现错误,强制处理继续。通过在命令行中添加 --force 来设置为 true 。参见 附录 A, MySQL Shell 命令参考. |
connectTimeout |
10 | 大于 0 的浮点数 | 任何未使用 AdminAPI 的会话连接超时前等待的时间(以秒为单位)。 |
credentialStore.excludeFilters |
空 | 数组 | 禁用自动密码存储的 URL 数组,支持通配符 * 和 ? 。 |
credentialStore.helper |
取决于平台 | 字符串 | 用于获取或存储密码的凭据助手的名称。支持特殊值 default 以使用平台的默认助手。特殊值 >disabled< 禁用凭据存储。 |
credentialStore.savePasswords |
提示 | 字符串 | 控制自动密码存储,支持的值:always 、prompt 或 never 。 |
dba.connectTimeout |
5 | 大于 0 的浮点数 | 任何使用 AdminAPI 的会话连接超时前等待的时间(以秒为单位)。 |
|
true |
boolean |
定义是否对 如果发生 SSL 错误,命令将停止并返回错误。 |
dba.gtidWaitTimeout |
60 | 大于 0 的整数 | 等待 GTID 事务应用的时间(以秒为单位),当 AdminAPI 操作需要时(参见 第 7.9 节,“修改或解散 InnoDB 集群”)。 |
logFile |
MySQL Shell 日志文件的路径。 | 字符串 | 显示 MySQL Shell 日志文件的路径。(只读)此值只能从命令行使用 --log-file=path/to/logfile.log 选项更改。参见 附录 A, MySQL Shell 命令参考. |
dba.logSql |
0 | 0 到 2 之间的整数 | (在 MySQL Shell 8.0.30 中已弃用。使用 logSql 代替。)记录 AdminAPI 操作执行的 SQL 语句(参见 第 12 章, MySQL Shell 日志记录和调试)。 |
dba.restartWaitTimeout |
60 | 大于 0 的整数 | 在恢复操作期间等待事务应用的时间(以秒为单位)。在加入实例需要恢复大量数据时,使用它来配置更长的超时时间。参见 第 7.4.6 节,“将 MySQL Clone 与 InnoDB 集群一起使用”)。 |
defaultCompress |
false | boolean | 请求在每个全局会话中客户端和服务器之间发送的信息的压缩。仅影响经典 MySQL 协议连接(参见 第 4.3.7 节,“使用压缩连接”)。 |
defaultMode |
无 | 字符串 (sql、js 或 py) | 启动 MySQL Shell 时使用的模式(SQL、JavaScript 或 Python)。 |
devapi.dbObjectHandles |
true | boolean | 为 X DevAPI db 对象启用表和集合名称句柄。 |
history.autoSave |
false | boolean | 退出应用程序时保存(true)或清除(false)MySQL Shell 代码历史记录中的条目(参见 第 5.5 节,“代码历史记录”)。 |
history.maxSize |
1000 | 整数 | 在 MySQL Shell 代码历史记录中存储的最大条目数。 |
history.sql.ignorePattern |
*SELECT*:SHOW* | 字符串 | 与这些模式匹配的字符串不会添加到 MySQL Shell 代码历史记录中。 |
history.sql.syslog |
false | boolean | 将交互式 SQL 语句发送到操作系统的系统日志记录工具(参见 第 12.3 节,“用户 SQL 语句的系统日志记录”)。 |
logLevel |
info | 1 到 8 之间的整数,或 none、internal、error、warning、info、debug、debug2、debug3 中的任何一个,分别表示 | 为应用程序日志设置日志记录级别(参见 第 12 章, MySQL Shell 日志记录和调试)。 |
logSql |
error | 字符串 (off、error、on、all) | 记录 MySQL Shell 操作执行的 SQL 语句(参见 第 12.4 节,“MySQL Shell SQL 日志记录”)。此日志选项不会记录从 SQL 模式交互式执行的用户 SQL 语句,仅记录 MySQL Shell 操作执行的 SQL 语句。记录所有 SQL 语句,除了在 logSql.ignorePatternUnsafe 和 logSql.ignorePattern 选项中定义的语句。
|
logSql.ignorePattern |
*SELECT*:*SHOW* |
字符串 | 指定冒号分隔的 glob 模式列表,以过滤掉 logSql 记录的 SQL 语句(参见 第 12.4 节,“MySQL Shell SQL 日志记录”)。 |
logSql.ignorePatternUnsafe |
*IDENTIFIED*:*PASSWORD* |
字符串 | 指定定义冒号分隔的语句模式列表,以过滤掉 logSql 记录的 SQL 语句(参见 第 12.4 节,“MySQL Shell SQL 日志记录”)。 |
mysqlPluginDir |
MySQL Shell 的 MySQL 插件目录。也就是说,在 Linux 平台上,您的 MySQL Shell 安装的 lib/mysql/plugins 目录,在 Windows 平台上,是 lib\mysql\plugins 。 |
字符串 | 设置对插件目录的持久路径。 |
oci.configFile |
您平台的默认位置。 | 字符串 | 设置对 OCI CLI 配置文件的持久路径。 |
oci.profile |
DEFAULT | 字符串 | 指定在 OCI CLI 配置文件中使用哪个配置文件。 |
pager |
无 | 字符串 | 使用指定的外部分页工具来显示文本和结果。可以添加工具的命令行参数(参见 第 4.6 节,“使用分页工具”)。 |
|
false | boolean | 从 stdin 读取密码而不是从终端读取。 |
resultFormat |
table | 字符串 (table、tabbed、vertical、json | json/pretty、ndjson | json/raw、json/array) | 用于打印结果集的默认输出格式(参见 第 5.7 节,“输出格式”)。 |
sandboxDir |
取决于平台 | 字符串 | 沙箱目录。在 Windows 上,默认值为 C:\Users\MyUser\MySQL\mysql-sandboxes ,在 Unix 系统上,默认值为 $HOME/mysql-sandboxes 。 |
showColumnTypeInfo |
false | boolean | 在 SQL 模式下,为结果集显示列元数据。 |
showWarnings |
true | boolean | 在 SQL 模式下,如果存在任何 SQL 警告,则自动显示。 |
ssh.bufferSize |
10240 | 大于 0 的整数 | 通过 SSH 隧道传输数据的缓冲区大小(以字节为单位)(参见 第 4.3.6 节,“使用 SSH 隧道”)。 |
ssh.configFile |
空 | 字符串 | 自定义 SSH 配置文件的路径,该文件将替换标准 SSH 配置文件 ~/.ssh/config 作为 SSH 隧道连接的默认配置文件(参见 第 4.3.6 节,“使用 SSH 隧道”)。 |
useWizards |
true | boolean | 启用向导模式。 |
verbose |
0 | 0 到 4 之间的整数 | 启用到控制台的详细输出并设置详细程度(参见 第 12 章, MySQL Shell 日志记录和调试)。 |
字符串值区分大小写。
列出的选项为 “只读”,无法修改。
outputFormat
选项现已弃用。使用 resultFormat
代替。
MySQL Shell \option
命令使您能够在所有模式下查询和更改配置选项,从而除了 JavaScript 和 Python 模式之外,还可以从 SQL 模式进行配置。
该命令的使用方式如下
\option -h, --help [
- 打印与filter
]filter
匹配的选项的帮助信息。-
\option -l, --list [--show-origin]
- 列出所有选项。--show-origin
会用有关上次更改值的方式的信息来增强列表,可能的值是命令行
编译后的默认值
配置文件
环境变量
用户定义
\option
- 打印选项的当前值。option_name
\option [--persist]
- 设置选项的值,如果指定了option_name
value
orname=value
--persist
,则将其保存到配置文件。\option --unset [--persist] <option_name>
- 将选项的值重置为默认值,如果指定了--persist
,则从 MySQL Shell 配置文件中删除该选项。
option_name
和 filter
的值区分大小写。
有关 option_name
的可能值的列表,请参见 有效的配置选项。
shell.options
对象在 JavaScript 和 Python 模式下可用,用于更改 MySQL Shell 选项值。您可以使用特定方法配置选项,或使用键值对,如下所示
MySQL JS > shell.options['history.autoSave']=1
除了键值对接口外,还提供以下方法
shell.options[optionName]
: 列出选项的当前值。shell.options.set(
: 将optionName
,value
)optionName
设置为value
,以便在本会话中使用,更改不会保存到配置文件。shell.options.setPersist(
: 将optionName
,value
)optionName
设置为value
,以便在本会话中使用,并将更改保存到配置文件。在 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
,其中~
代表用户的 home 目录。
配置文件在您首次自定义配置选项时创建。此文件由 MySQL Shell 内部维护,不应手动编辑。如果在启动时在配置文件中找到无法识别的选项或具有不正确值的选项,MySQL Shell 将退出并显示错误。