A.1 mysqlsh - MySQL Shell

MySQL Shell是MySQL的高级命令行客户端和代码编辑器。除了SQL, MySQL Shell还提供JavaScript和Python的脚本功能。有关使用MySQL Shell的信息,请参见MySQL Shell 8.0.当MySQL Shell通过X协议连接到MySQL服务器时,X DevAPI可以用来处理关系数据和文档数据,参见使用MySQL作为文档存储.MySQL Shell包含AdminAPI,使您能够使用InnoDB Cluster, InnoDB ClusterSet和InnoDB replicset部署;看到第六章,MySQL AdminAPI

这里描述的许多选项都与MySQL Shell和MySQL Server实例之间的连接有关。看到第4.3节,MySQL Shell连接更多信息。

mysqlsh支持以下命令行选项。

表A.1 mysqlsh选项

选项名称 描述 介绍了
-- 开始API命令行集成
- - - auth方法 要使用的身份验证方法
——集群 连接到InnoDB集群 8.0.4
——column-type-info 打印结果集中列的元数据 8.0.14
——压缩 压缩客户端和服务器之间发送的所有信息 8.0.14
——connect-timeout 全局会话的连接超时 8.0.13
——credential-store-helper 密码的Secret Store助手 8.0.12
——数据库 要使用的模式(——schema的别名)
——dba 在连接MySQL 5.7服务器时启用X协议
——dba-log-sql 记录AdminAPI操作执行的SQL语句 8.0.18
——dbpassword 连接到服务器时使用的密码
——dbus 连接到服务器时使用的MySQL用户名
——执行 执行命令并退出
——文件 要以批处理模式处理的文件
——力 即使出现错误,也要继续使用SQL和批处理模式
——get-server-public-key 从服务器请求RSA公钥
——帮助 显示帮助信息并退出
——histignore 未添加到历史记录的字符串 8.0.3
——主机 MySQL服务器实例所在的主机
——进口 从文件或标准输入导入JSON文档 8.0.13
——互动 模拟批处理模式中的交互模式
——js——javascript 以JavaScript模式启动
——json 打印输出JSON格式
——日志文件 此实例的日志文件位置 8.0.27
——进行日志级别 指定日志记录级别
自动检测会话的传输协议 8.0.3
——mysqlmc 使用经典MySQL协议创建会话 8.0.3
——mysql-plugin-dir 安装客户端插件的目录 8.0.27
——mysqlxmx 使用X协议创建会话 8.0.3
——名称缓存 启用基于活动默认模式的表名自动加载 8.0.4
——no-name-cache 禁用自动完成 8.0.4
——没密码 此连接没有提供密码
——no-wizard——西北 禁用交互式向导
——寻呼机 用于显示输出的外部寻呼机工具 8.0.13
——密码 连接到服务器时使用的密码(——dbpassword的别名)
——passwords-from-stdin 从stdin读取密码
——港口 TCP/IP连接端口号
——py——python 以Python模式启动
——低调 开始时不要打印介绍性信息
——recreate-schema 删除并重新创建模式
——redirect-primary 确保连接到InnoDB集群的主节点 8.0.4
——redirect-secondary 确保连接到InnoDB集群的备用服务器
——result-format 设置此会话的输出格式 8.0.14
——save-passwords 密码如何存储在秘密存储中 8.0.12
——模式 要使用的模式
——server-public-key-path 包含RSA公钥文件的路径名称
——显示警告 在每个语句之后显示警告(在SQL模式下)
——套接字 使用Unix套接字文件或Windows命名管道(仅适用于经典MySQL协议)
——sql 启动SQL模式,自动检测协议用于连接
——sqlc 使用经典的MySQL协议连接以SQL模式启动
——sqlx 使用X协议连接以SQL模式启动 8.0.3
——ssl-ca 包含受信任的SSL证书颁发机构列表的文件
——ssl-capath 包含受信任的SSL证书颁发机构证书文件的目录
——ssl-cert 包含X.509证书的文件
——ssl cipher 要使用的SSL密码的名称
——ssl-crl 包含证书撤销列表的文件
——ssl-crlpath 包含证书吊销列表文件的目录
——ssl密钥 包含X.509密钥的文件
——ssl-mode 到服务器的连接所需的安全状态
——syslog 将交互式SQL语句记录到系统日志记录工具 8.0.24
——选项卡 以制表符分隔格式显示输出
——表 以表格格式显示输出
——tls版本 允许的TLS加密连接协议
——uri URI格式的会话信息
——用户 MySQL连接到服务器时使用的用户名(——dbuser的别名)
——详细 激活对控制台的详细输出 8.0.17
——版本 显示版本信息并退出
——垂直 垂直显示所有SQL结果

  • ——帮助-?

    显示帮助消息并退出。

  • --

    标记mysqlsh选项列表的结束和MySQL Shell的API命令行集成的命令及其参数的开始。你可以使用下面的语法从命令行执行MySQL Shell全局对象的方法:

    mysqlsh [选项)——对象方法参数

    看到第5.8节,“API命令行集成”更多信息。

  • ——auth方法=方法

    为帐户使用的身份验证方法。取决于帐户密码使用的身份验证插件。对于使用经典MySQL协议的MySQL Shell连接,请指定认证插件的名称,例如caching_sha2_password.对于使用X协议的MySQL Shell连接,指定以下选项之一:

    汽车

    让库选择身份验证方法。

    回退

    让库选择认证方法,但不要使用与MySQL 5.7不兼容的任何认证方法。

    FROM_CAPABILITIES

    让库使用服务器实例声明的功能来选择身份验证方法。

    MYSQL41

    请使用MySQL 4.1及以上版本支持的challenge-response认证协议,该协议不发送明文密码。该选项与使用mysql_native_password身份验证插件。

    平原

    发送明文密码进行认证。仅在加密连接中使用此选项。类的帐户可使用该选项通过缓存的凭据进行身份验证caching_sha2_password认证插件,只要有一个SSL连接。看到使用X插件与缓存SHA-2认证插件

    SHA256_MEMORY

    使用存储在内存中的散列密码进行身份验证。类的帐户可使用该选项通过缓存的凭据进行身份验证caching_sha2_password认证插件,其中有一个非ssl连接。看到使用X插件与缓存SHA-2认证插件

    对于使用经典MySQL协议的MySQL Shell连接,请指定用户帐户使用的身份验证插件的名称,例如caching_sha2_password(这是MySQL 8.0中创建的用户帐户的默认值)。MySQL Shell使用MySQL客户端库对这些连接进行客户端身份验证。以下认证方式需要额外配置:

    clear_text_password

    mysql_clear_password简单的LDAP身份验证需要客户端插件。它内置在MySQL客户端库中,但出于安全考虑,默认情况下没有启用它。从MySQL Shell 8.0.27中,MySQL Shell启用并使用插件——auth方法= clear_text_password连接选项。这种身份验证类型只适用于使用SSL或套接字的安全连接,因此必须在使用安全连接之前配置安全连接。注意,在选项中ssl-mode =首选,不保证SSL连接,因此具有此选项集的连接不被认为是SSL连接。有关更多信息,请参见第4.3.3节,“使用加密连接”

    authentication_ldap_sasl_client

    authentication_ldap_sasl_client客户端插件用于基于sasl的LDAP认证,包括GSSAPI/Kerberos认证。它不是内建在MySQL客户端库中,而是在MySQL Server包中提供的。要加载它,必须使用——mysql-plugin-dir选项(从MySQL Shell 8.0.27中可用)来指定MySQL Server包中插件的路径。

    authentication_kerberos_client

    authentication_kerberos_client客户端插件用于Kerberos身份验证。它不是内建在MySQL客户端库中,而是在MySQL Server包中提供的。要加载它,必须使用——mysql-plugin-dir选项(从MySQL Shell 8.0.27中可用)来指定MySQL Server包中插件的路径。

    MySQL 8.0.27支持用于Kerberos身份验证的缓存票据授予票据(tgt)- - - auth方法选项用于指定authentication_ldap_sasl_clientauthentication_kerberos_client插件和——mysql-plugin-dir选项用于提供到插件的路径。要使用缓存的tgt,不要在连接选项中指定用户和密码。当您指定其中一个插件而不指定用户和密码时,MySQL Shell不提供系统用户名,不提示输入密码,也不尝试使用Secret Store助手检索或存储凭据。

    有关更多信息,请参见第4.3.4节“使用LDAP和Kerberos身份验证”

  • ——集群

    确保目标服务器是一个InnoDB集群的一部分,如果是,设置集群集群对象的全局变量。

  • ——column-type-info

    在SQL模式下,在打印查询的返回结果集之前,打印结果集中每个列的元数据,例如列类型和排序规则。

    返回的列类型与MySQL Shell (类型),以及原始数据库使用的类型(DBType).对于使用经典MySQL协议的MySQL Shell连接,DBType为协议返回值,对于X协议连接,DBType是从现有信息中推断出来的。列长(长度)以字节为单位返回。

  • ——压缩(={|喜欢|需要禁用})- c[{|喜欢|需要禁用}]

    控制使用此连接在客户机和服务器之间发送的信息的压缩。在MySQL Shell 8.0.14到8.0.19中,该选项仅用于经典的MySQL协议连接,而不使用该选项要求首选,禁用.在这些版本中,当您指定时——压缩,如果可能,压缩被激活。从MySQL Shell 8.0.20中,它也可用于X协议连接,您可以选择指定要求首选,或禁用.当——压缩从MySQL Shell 8.0.20指定,意思是——压缩=要求.看到第4.3.5节,“使用压缩连接”有关在所有版本中使用MySQL Shell压缩控件的信息。

  • ——connect-timeout =女士

    配置MySQL Shell建立通过命令行参数指定的全局会话所需的等待时间(以毫秒为单位)。

  • ——credential-store-helper =助手

    将用于存储和检索密码的秘密存储助手。看到第4.4节,“可插入密码存储”

  • ——数据库=的名字- d的名字

    要使用的默认模式。这是一个别名——模式

  • ——dba = enableXProtocol

    在连接MySQL 5.7服务器时启用X Plugin,以便在后续连接中使用X协议连接。需要使用经典MySQL协议连接。与MySQL 8.0服务器无关,它默认启用了X Plugin。

  • ——dba-log-sql [= 0 | 1 | 2]

    记录AdminAPI操作执行的SQL语句(不包括沙盒操作)。默认情况下,这类语句不会写入MySQL Shell应用程序日志文件,也不会作为详细输出发送到控制台,即使——进行日志级别而且——详细设置选项。该选项的取值范围为0 ~ 2的整数。0不记录或显示这类语句,如果不指定该选项,这是默认行为。1记录AdminAPI操作执行的SQL语句,除选择语句和显示语句(如果您在没有值的命令行上指定该选项,则这是默认设置)。2完整记录AdminAPI常规操作执行的SQL语句,包括选择而且显示语句。看到第十二章,MySQL Shell日志和调试更多信息。

  • ——dbpassword [=密码

    在MySQL Shell 8.0.13版本已移除。使用——密码(=密码代替。

  • ——dbus =user_name

    在MySQL Shell 8.0.13版本已移除。使用——用户=user_name代替。

  • ——执行=命令- e命令

    使用当前激活的语言执行命令并退出。选项互斥——文件=file_name选择。

  • ——文件=file_name- ffile_name

    指定要以批处理模式处理的文件。在此之后指定的任何选项都用作处理后文件的参数。

  • ——力

    即使出现错误,也要继续使用SQL和Batch模式进行处理。

  • ——histignore =字符串

    指定没有添加到MySQL Shell历史记录的字符串。字符串用冒号分隔。匹配不区分大小写,通配符*和?可以使用。默认被忽略的字符串被指定为* *确定*:*密码.看到第5.5节,“代码历史”

  • ——主机=host_name- hhost_name

    连接到给定主机上的MySQL服务器。在Windows上,如果指定的话——主机=。- h。(以主机名作为句点),MySQL Shell使用默认的命名管道进行连接MySQL方法指定的另一种命名管道——套接字选择。

  • ——get-server-public-key

    Shell等效的MySQL——get-server-public-key

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

    重要的

    只支持经典的MySQL协议连接。

    看到缓存SHA-2可插入认证

  • ——进口

    使用JSON导入实用程序将JSON文档从文件或标准输入导入到MySQL Server集合或关系表。有关说明,请参见第11.2节,“JSON导入实用程序”

  • ——互动(=完整)-我

    在批处理模式中模拟交互模式。

  • ——js——javascript

    以JavaScript模式启动。

  • ——json(={了漂亮| |生})

    控制这个会话的MySQL Shell输出的JSON包装。该选项用于将MySQL Shell与其他程序连接起来,例如作为测试的一部分。要更改查询结果输出以使用JSON格式,请参见——result-format

    ——json选项没有值或值为漂亮的,输出生成为打印精美的JSON。的值,输出以原始JSON格式生成。在这些情况下,——result-format选项及其别名的值resultFormatMySQL Shell配置选项被忽略。的值类指定的格式正常输出结果集——result-format选项或resultFormat配置选项。

  • ——日志文件=路径

    更改MySQL Shell应用程序日志文件的位置mysqlsh.logMySQL Shell实例。应用程序日志文件的默认位置是用户配置路径,默认为% APPDATA % \ MySQL \ mysqlsh \在Windows或~ / .mysqlsh /在Unix。您可以通过定义环境变量来覆盖所有MySQL Shell实例的用户配置路径MYSQLSH_USER_CONFIG_HOME.的——日志文件选项适用于单独的MySQL Shell实例,这意味着不同的实例可以写入不同的位置。

  • ——进行日志级别=N

    更改MySQL Shell应用程序日志文件的日志级别mysqlsh.log,或禁用对文件的日志记录。该选项需要一个值,可以是1到8之间的整数,也可以是其中之一没有一个内部错误警告信息调试debug2,或debug3.指定1或没有一个禁止记录到应用程序日志文件。第五级(信息)是默认值,如果您不指定此选项。看到第十二章,MySQL Shell日志和调试

  • 在MySQL Shell 8.0.13版本已移除。自动尝试使用X协议创建会话连接,如果X协议不可用,则退回到经典的MySQL协议。

  • ——mysql- - - mc

    将启动时创建的全局会话设置为使用经典的MySQL协议连接。的- - - mc选项用两个连字符替换先前的单个连字符mcMySQL Shell 8.0.13选项。

  • ——mysql-plugin-dir =路径

    控件的值来设置到客户端身份验证插件的非持久路径shell.options.mysqlPluginDir设置。客户端插件是在MySQL Server包中提供的,可以相对于MySQL基目录(的值basedir系统变量)。例如:

    • C:\program files\mysql\mysql Server 8.0\lib\plugin在Windows主机类型上

    • /usr/local/mysql/lib/plugin在Linux主机类型上

    有关随服务器附带的客户端身份验证插件的列表,请参见可用的身份验证插件

  • ——mysqlx- - - mx

    将在启动时创建的全局会话设置为使用X协议连接。的- - - mx选项用两个连字符替换先前的单个连字符mxMySQL Shell 8.0.13选项。

  • ——名称缓存

    启用基于活动默认模式的表名自动加载。

  • ——no-name-cache——一个

    禁用基于活动默认模式和DevAPI的自动完成的表名加载db对象。使用\重复手动重新加载名称信息。

  • ——没密码

    在连接到服务器时,如果用户使用无密码帐户(这是不安全的,不建议使用),或者使用套接字对等凭证身份验证(对于Unix套接字连接),则必须使用——没密码显式指定不提供密码,并且不需要密码提示。

  • ——no-wizard- nw

    禁用创建连接等操作提供的交互向导,dba.configureInstance ()集群.rebootClusterFromCompleteOutage ()以此类推。当您希望编写MySQL Shell脚本而不显示交互式提示时,请使用此选项。有关更多信息,请参见第5.6节,“批处理代码执行”而且第5.8节,“API命令行集成”

  • ——寻呼机=的名字

    MySQL Shell使用的外部分页工具,用于显示以SQL模式执行的语句的文本输出和其他选定的命令(如在线帮助)。控件指定的分页器寻呼机使用环境变量。看到第4.6节“使用传呼机”

  • ——passwords-from-stdin

    从标准输入读取密码,而不是从终端读取。此选项不影响任何其他密码行为,例如密码提示。

  • ——密码(=密码- p密码

    连接到服务器时使用的密码。连接MySQL Shell所允许的最大密码长度为128个字符。

    • ——密码=密码- p密码),值提供用于连接的密码。用长格式——密码=,您必须使用等号,而不是在选项及其值之间使用空格。用简写形式- p,选项和值之间不能有空格。如果在这两种情况下都使用了空格,则该值不会被解释为密码,而可能被解释为另一个连接参数。

      在命令行上指定密码应该被认为是不安全的。看到密码安全终端用户指南.您可以使用选项文件来避免在命令行上给出密码。

    • ——密码没有值也没有等号,或者- p如果没有值,则请求密码提示。

    • ——密码=与空值具有相同的效果——没密码,它指定用户不需要密码进行连接。在连接到服务器时,如果用户使用无密码帐户(这是不安全的,不建议使用),或者使用套接字对等凭据身份验证(对于Unix套接字连接),则必须使用以下方法之一显式指定不提供密码,并且不需要密码提示。

  • ——港口=port_num- pport_num

    用于连接的TCP/IP端口号。默认为33060端口。

  • ——py——python

    以Python模式启动。

  • ——宾

    在MySQL Shell的Python模式下以脚本的形式执行指定的Python模块。——宾与Python的工作方式相同- m命令行选项。这个选项在MySQL Shell 8.0.22中可用。

  • ——低调(= 1 | 2)

    开始时不要打印介绍性信息。MySQL Shell通常打印有关产品的信息、有关会话的信息(例如默认模式和连接ID)、警告消息以及启动和连接期间返回的任何错误。当你指定——低调如果没有值或值为1,则不打印MySQL Shell产品的信息,但打印会话信息、警告和错误。如果值为2,则只打印错误。

  • ——recreate-schema

    删除并重新创建连接选项中指定的模式,可以作为类似uri的连接字符串的一部分,也可以使用——模式——数据库,或- d选择。如果模式存在,则删除该模式。

  • ——redirect-primary

    确保目标服务器是一个InnoDB集群或InnoDB副本集的一部分,如果它不是主服务器,就找到主服务器并连接到它。使用此选项时,如果下列任何一种情况为真,MySQL Shell将退出并报错:

    • 没有指定实例

    • 在InnoDB集群中,组复制未激活

    • InnoDB集群元数据不存在

    • 没有法定人数

  • ——replicaset

    确保目标服务器属于一个InnoDB副本集,如果是,则填充rs全局变量和InnoDB副本集。然后,你可以使用rs全局变量,例如通过发布rs.status ()

  • ——redirect-secondary

    确保目标服务器是单主InnoDB集群或InnoDB副本集的一部分,如果它不是辅助服务器,则查找辅助服务器并连接到它。使用此选项时,如果下列任何一种情况为真,MySQL Shell将退出并报错:

    • 在InnoDB集群中,组复制未激活

    • InnoDB集群元数据不存在

    • 没有法定人数

    • 集群不是单主模式,而是以多主模式运行

    • 例如,没有备用服务器,因为只有一个服务器实例

  • ——result-format ={表|标签垂直json json /漂亮的| | | | ndjson | json /生| json数组}

    的值resultFormatMySQL Shell配置选项用于此会话。格式如下:

    表格

    的默认值,否则交互模式的默认值resultFormat配置文件中的配置选项,在这种情况下应用默认值。的——表也可以使用别名。

    选项卡

    批处理模式的默认值,除非已为resultFormat配置文件中的配置选项,在这种情况下应用默认值。的——选项卡也可以使用别名。

    垂直

    产生等价的输出\ GSQL查询的终止符。的——垂直- e也可以使用别名。

    Json或Json /pretty

    生成打印精美的JSON。

    Ndjson或json/raw

    生成由换行符分隔的原始JSON。

    json /数组

    生成封装在JSON数组中的原始JSON。

    如果——json命令行选项用于为会话的输出激活JSON包装——result-format选项及其别名的值resultFormat配置选项被忽略。

  • ——save-passwords ={总是| |提示从不}

    控制密码是否自动存储在秘密存储区中。总是意味着密码总是被存储,除非它们已经在存储中或服务器URL被过滤器排除。从来没有意味着密码永远不会被存储。提示,这是默认值,意味着用户会被询问是否存储密码。看到第4.4节,“可插入密码存储”

  • ——模式=的名字- d的名字

    要使用的默认模式。

  • ——server-public-key-path =file_name

    Shell等效的MySQL——server-public-key-path

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

    重要的

    只支持经典的MySQL协议连接。

    看到caching_sha2_password插件缓存SHA-2可插入认证

  • ——显示警告={真|假}

    当在SQL模式下指定true时(这是默认值),MySQL Shell将在每个SQL语句之后显示警告(如果有的话)。如果指定false,则不显示警告信息。

  • ——插座(=路径- s(路径)

    在Unix上,当指定一个路径时,该路径是用于连接的Unix套接字文件的名称。如果你指定——套接字没有值也没有等号,或者- s如果没有值,则使用适当协议的默认Unix套接字文件。

    在Windows上,该路径是用于连接的命名管道的名称。管道名称不区分大小写。在Windows上,必须指定一个路径,而——套接字选项仅适用于经典的MySQL协议会话。

    如果指定的是端口或主机名,则不能指定套接字本地主机在Unix上或在Windows上一个句号(.)。

  • ——sql

    以SQL模式启动,如果未将协议指定为连接信息的一部分,则自动检测要使用的协议。如果没有指定使用的协议,则默认使用X协议连接,退回到经典的MySQL协议连接。强制连接使用特定协议,请参阅——sqlx——sqlc选项。或者,指定协议作为类uri连接字符串的一部分使用,或者使用——港口选择。看到第4.3节,MySQL Shell连接而且MySQL Shell端口更多信息。

  • ——sqlc

    以SQL模式启动,强制连接使用经典的MySQL协议,例如在不支持X协议的服务器上使用MySQL Shell。如果你没有指定端口作为连接的一部分,当你提供这个选项时,MySQL Shell使用默认的经典MySQL协议端口,通常是3306。您所连接的端口必须支持经典的MySQL协议,因此,例如,如果您指定的连接使用X协议的默认端口33060,则连接失败并出现错误。看到第4.3节,MySQL Shell连接而且MySQL Shell端口更多信息。

  • ——sqlx

    以SQL模式启动,强制连接使用X协议。如果您没有指定端口作为连接的一部分,当您提供这个选项时,MySQL Shell使用默认的X协议端口,通常是33060。您所连接的端口必须支持X协议,因此,例如,如果您指定的连接使用经典的MySQL协议默认端口3306,则连接失败并出现错误。看到第4.3节,MySQL Shell连接而且MySQL Shell端口更多信息。

  • ——ssl *

    选项以——ssl指定是否使用SSL连接到服务器,并指示在哪里查找SSL密钥和证书。的mysqlshSSL选项的功能与MySQL服务器的SSL选项相同,请参见加密连接的命令选项更多信息。

    mysqlsh接受以下SSL选项:——ssl-mode——ssl-ca——ssl-capath——ssl-cert——ssl cipher——ssl-crl——ssl-crlpath——ssl密钥——tls版本

  • ——syslog

    将您在MySQL Shell的SQL模式下发出的SQL语句发送到操作系统的系统日志工具(syslog在Unix上,或Windows事件日志)。SQL语句的系统日志只在MySQL Shell以交互模式启动时发生,因此,要么是正常启动,要么是使用——互动选择。它不会发生在——执行——文件选项在启动时用于运行mysqlsh在批处理模式下。看到第12.3节“SQL语句的系统日志”更多信息。

  • ——选项卡

    在交互模式下以标签分隔格式显示结果。该模式的默认设置是表格格式。选项的别名——result-format =选项卡选择。

  • ——表

    在批处理模式中以表格格式显示结果。该模式的默认值是制表符分隔格式。选项的别名——result-format =表选择。

  • ——uri =str

    在启动时创建连接,在类似uri的字符串中指定连接选项使用类似uri的字符串或键值对连接到服务器

  • ——用户=user_name- uuser_name

    连接到服务器时使用的MySQL用户名。

  • ——详细[= 0 | 1 | 2 | 3 | 4]

    激活对控制台的详细输出并指定详细级别。整数形式,取值范围是0 ~ 4。0显示不消息,这是在不指定该选项时的默认详细度设置。1显示错误、警告和信息消息(如果您在命令行上指定了没有值的选项,则这是默认设置)。2、3和4添加更高级别的调试消息。看到第十二章,MySQL Shell日志和调试更多信息。

  • ——版本- v

    显示MySQL Shell版本并退出。

  • ——垂直- e

    垂直显示结果,如\ G终止符用于SQL查询。选项的别名——result-format =垂直选择。