您可以配置 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 |
空 | array | 禁用自动密码存储的 URL 数组,支持通配符 * 和 ? 。 |
credentialStore.helper |
取决于平台 | string | 用于获取或存储密码的凭据帮助程序的名称。支持一个特殊值 default 来使用平台的默认帮助程序。特殊值 >disabled< 禁用凭据存储。 |
credentialStore.savePasswords |
提示 | string | 控制自动密码存储,支持的值:always 、prompt 或 never 。 |
dba.connectTimeout |
5 | 大于 0 的浮点数 | 任何使用 AdminAPI 的会话连接超时前等待的时间(秒)。 |
|
true |
boolean |
定义是否为 如果发生 SSL 错误,则命令停止并返回错误。 |
dba.gtidWaitTimeout |
60 | 大于 0 的整数 | 在 AdminAPI 操作需要时(请参阅 第 7.9 节,“修改或解散 InnoDB 集群”)等待 GTID 事务应用的时间(秒)。 |
logFile |
MySQL Shell 日志文件的路径。 | string | 显示 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 |
无 | string (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 | integer | 在 MySQL Shell 代码历史记录中存储的条目最大数量。 |
history.sql.ignorePattern |
*SELECT*:SHOW* | string | 与这些模式匹配的字符串不会添加到 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 | string (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* |
string | 指定冒号分隔的 glob 模式列表,以过滤掉由 logSql 记录的 SQL 语句(请参阅 第 12.4 节,“MySQL Shell SQL 日志记录”)。 |
logSql.ignorePatternUnsafe |
*IDENTIFIED*:*PASSWORD* |
string | 指定定义冒号分隔的语句模式列表,以过滤掉由 logSql 记录的 SQL 语句(请参阅 第 12.4 节,“MySQL Shell SQL 日志记录”)。 |
mysqlPluginDir |
MySQL Shell 的 MySQL 插件目录。即,您在 Linux 平台上的 MySQL Shell 安装中的 lib/mysql/plugins 目录,以及在 Windows 平台上的 lib\mysql\plugins 目录。 |
string | 设置插件目录的持久路径。 |
oci.configFile |
您平台的默认位置。 | string | 设置 OCI CLI 配置文件的持久路径。 |
oci.profile |
DEFAULT | string | 指定在 OCI CLI 配置文件中使用哪个配置文件。 |
pager |
无 | string | 使用指定的外部分页工具来显示文本和结果。可以添加该工具的命令行参数(请参阅 第 4.6 节,“使用分页工具”)。 |
|
false | boolean | 从 stdin 而不是终端读取密码。 |
resultFormat |
table | string (table、tabbed、vertical、json | json/pretty、ndjson | json/raw、json/array) | 用于打印结果集的默认输出格式(请参阅 第 5.7 节,“输出格式”)。 |
sandboxDir |
取决于平台 | string | 沙箱目录。在 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 |
空 | string | 自定义 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
的可能值的列表,请参阅 有效的配置选项。
在 JavaScript 和 Python 模式下,shell.options
对象可用于更改 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 将退出并显示错误。