MySQL Shell 是適用於 MySQL 的進階命令列用戶端和程式碼編輯器。除了 SQL 之外,MySQL Shell 也為 JavaScript 和 Python 提供腳本功能。如需有關使用 MySQL Shell 的資訊,請參閱MySQL Shell 9.0.0。當 MySQL Shell 通過 X Protocol 連接到 MySQL 伺服器時,可以使用 X DevAPI 來處理關係資料和文件資料,請參閱將 MySQL 用作文件儲存區。MySQL Shell 包含 AdminAPI,可讓您處理 InnoDB 叢集、InnoDB 叢集集和 InnoDB 複本集部署;請參閱第 6 章,MySQL AdminAPI。
此處描述的許多選項都與 MySQL Shell 和 MySQL 伺服器執行個體之間的連線有關。請參閱第 4.3 節,「MySQL Shell 連線」以取得更多資訊。
mysqlsh 支援下列命令列選項。
表 A.1 mysqlsh 選項
選項名稱 | 描述 |
---|---|
-- | API 命令列整合的起點 |
--auth-method | 要使用的驗證方法 |
--authentication-oci-client-config-profile | OCI 組態檔案中的設定檔 |
--cluster | 連線至 InnoDB 叢集 |
--column-type-info | 列印結果集中資料行的中繼資料 |
--compress | 壓縮用戶端與伺服器之間傳送的所有資訊 |
--connect-timeout | 全域工作階段的連線逾時 |
--credential-store-helper | 密碼的密碼儲存區輔助程式 |
--database | 要使用的結構描述 (別名為 --schema) |
--dba | 在與 MySQL 5.7 伺服器連線時啟用 X Protocol |
--execute | 執行命令並結束 |
--file | 要在批次模式中處理的檔案 |
--force | 即使發生錯誤,仍繼續在 SQL 和批次模式中執行 |
--get-server-public-key | 向伺服器請求 RSA 公開金鑰 |
--help | 顯示說明訊息並結束 |
--histignore | 未新增至歷程記錄的字串 |
--host | MySQL 伺服器執行個體所在的機器 |
--interactive | 在批次模式中模擬互動模式 |
--js、--javascript | 以 JavaScript 模式啟動 |
--json | 以 JSON 格式列印輸出 |
--log-file | 此執行個體的記錄檔位置 |
--log-level | 指定記錄層級 |
--log-sql | 將所有 MySQL Shell 產生的 SQL 陳述式記錄到 MySQL Shell 記錄檔。 |
--mysql、-mc | 使用傳統 MySQL 通訊協定建立工作階段 |
--mysql-plugin-dir | 安裝用戶端外掛程式的目錄 |
--mysqlx、-mx | 使用 X Protocol 建立工作階段 |
--name-cache | 根據使用中的預設結構描述啟用自動載入資料表名稱 |
--no-name-cache | 停用自動完成 |
--no-password | 未提供此連線的密碼 |
--no-wizard、--nw | 停用互動式精靈 |
--oci-config-file | 要使用的 OCI 組態檔案路徑 |
--pager | 用於顯示輸出的外部分頁工具 |
--password | 連線至伺服器時要使用的密碼 |
--password1 | 多重要素驗證的密碼 1 (相當於 --password) |
--password2 | 多重要素驗證的密碼 2 |
--password3 | 多重要素驗證的密碼 3 |
--passwords-from-stdin | 從 stdin 讀取密碼 |
--plugin-authentication-webauthn-client-preserve-privacy | 允許使用者選擇要用於判斷提示的金鑰 |
--port | 連線的 TCP/IP 通訊埠號碼 |
--py、--python | 以 Python 模式啟動 |
--pyc | 執行 Python 命令並結束。在此之後指定的任何選項都視為已處理命令的引數。 |
--quiet-start | 啟動時不列印簡介資訊 |
--redirect-primary | 確保連線至 InnoDB 叢集的主節點 |
--redirect-secondary | 確保連線至 InnoDB 叢集的次節點 |
--register-factor | 必須完成註冊的多重要素驗證因素 |
--result-format | 設定此工作階段的輸出格式 |
--save-passwords | 密碼在密碼儲存區中的儲存方式 |
--schema | 要使用的結構描述 |
--server-public-key-path | 包含 RSA 公開金鑰的檔案路徑名稱 |
--show-warnings | 如果每個陳述式之後有任何警告,則顯示 (在 SQL 模式中) |
--socket | 要使用的 Unix Socket 檔案或 Windows 具名管道 (僅限傳統 MySQL 通訊協定) |
--sql | 以 SQL 模式啟動,自動偵測要用於連線的通訊協定 |
--sqlc | 使用傳統 MySQL 通訊協定連線以 SQL 模式啟動 |
--sqlx | 使用 X Protocol 連線以 SQL 模式啟動 |
--ssh | 連線至 SSH 伺服器的 URI |
--ssh-config-file | 連線至 SSH 伺服器的組態檔案 |
--ssh-identity-file | 連線至 SSH 伺服器的身分識別檔案 |
--ssl-ca | 包含受信任 SSL 憑證授權單位清單的檔案 |
--ssl-capath | 包含受信任 SSL 憑證授權單位憑證檔案的目錄 |
--ssl-cert | 包含 X.509 憑證的檔案 |
--ssl-cipher | 要使用的 SSL 加密名稱 |
--ssl-crl | 包含憑證撤銷清單的檔案 |
--ssl-crlpath | 包含憑證撤銷清單檔案的目錄 |
--ssl-key | 包含 X.509 金鑰的檔案 |
--ssl-mode | 連線至伺服器的所需安全性狀態 |
--syslog | 將互動式 SQL 陳述式記錄到系統記錄設施 |
--tabbed | 以 Tab 分隔格式顯示輸出 |
--table | 以資料表格式顯示輸出 |
--tls-version | 加密連線的可允許 TLS 通訊協定 |
--uri | URI 格式的工作階段資訊 |
--user | 連線至伺服器時要使用的 MySQL 使用者名稱 |
--verbose | 啟用主控台的詳細輸出 |
--version | 顯示版本資訊並結束 |
--vertical | 垂直顯示所有 SQL 結果 |
-
--help
、-?
顯示說明訊息並結束。
-
標示 mysqlsh 選項清單的結尾,以及 MySQL Shell 的 API 命令列整合之命令及其引數的起點。您可以使用此語法從命令列執行 MySQL Shell 全域物件的方法
mysqlsh [options] -- object method [arguments]
如需更多資訊,請參閱第 5.8 節,「API 命令列整合」。
-
帳戶使用的驗證方法。取決於帳戶密碼使用的驗證外掛程式。對於使用傳統 MySQL 通訊協定的 MySQL Shell 連線,請指定驗證外掛程式的名稱,例如
caching_sha2_password
。對於使用 X Protocol 的 MySQL Shell 連線,請指定下列其中一個選項- AUTO
讓程式庫選擇驗證方法。
- FALLBACK
讓程式庫選擇驗證方法,但不使用任何與 MySQL 5.7 不相容的驗證方法。
- FROM_CAPABILITIES
讓程式庫選擇驗證方法,並使用伺服器執行個體宣告的功能。
- MYSQL41
使用 MySQL 4.1 和更高版本支援的挑戰-回應驗證通訊協定,此通訊協定不會傳送純文字密碼。此選項與使用
mysql_native_password
驗證外掛程式的帳戶相容。- PLAIN
傳送純文字密碼以進行驗證。僅針對加密連線使用此選項。如果存在 SSL 連線,則可以使用此選項來以使用
caching_sha2_password
驗證外掛程式的帳戶快取認證進行驗證。請參閱將 X Plugin 與快取 SHA-2 驗證外掛程式搭配使用。- SHA256_MEMORY
使用記憶體中儲存的雜湊密碼進行驗證。此選項可用於使用
caching_sha2_password
驗證外掛程式的帳戶,在非 SSL 連線情況下,使用快取的憑證進行驗證。請參閱搭配快取 SHA-2 驗證外掛程式使用 X Plugin。
對於使用傳統 MySQL 通訊協定的 MySQL Shell 連線,請指定使用者帳戶所使用的驗證外掛程式名稱,例如
caching_sha2_password
(這是 MySQL 8.0 中建立的使用者帳戶的預設值)。MySQL Shell 使用 MySQL 用戶端程式庫進行這些連線的用戶端驗證。下列驗證方法需要額外的設定:- clear_text_password
簡單的 LDAP 驗證需要
mysql_clear_password
用戶端外掛程式。它內建於 MySQL 用戶端程式庫中,但為了安全起見,預設為停用。當您使用--auth-method=clear_text_password
連線選項指定時,MySQL Shell 會啟用並使用此外掛程式。此驗證類型僅適用於使用 SSL 或 Socket 的安全連線,因此您必須先設定安全連線才能使用它。請注意,使用ssl-mode=preferred
選項時,無法保證 SSL 連線,因此設定此選項的連線不被視為 SSL 連線。如需更多資訊,請參閱第 4.3.4 節「使用加密連線」。- authentication_ldap_sasl_client
authentication_ldap_sasl_client
用戶端外掛程式適用於基於 SASL 的 LDAP 驗證,包括 GSSAPI/Kerberos 驗證。它並未內建於 MySQL 用戶端程式庫中,但它包含在 MySQL Server 套件中。若要載入它,您必須使用--mysql-plugin-dir
選項,指定 MySQL Server 套件中此外掛程式的路徑。- authentication_kerberos_client
authentication_kerberos_client
用戶端外掛程式適用於 Kerberos 驗證。它並未內建於 MySQL 用戶端程式庫中,但它包含在 MySQL Server 套件中。若要載入它,您必須使用--mysql-plugin-dir
選項,指定 MySQL Server 套件中此外掛程式的路徑。
從 MySQL 8.0.27 開始,當使用
--auth-method
選項指定authentication_ldap_sasl_client
或authentication_kerberos_client
外掛程式,並且使用--mysql-plugin-dir
選項提供此外掛程式的路徑時,支援 Kerberos 驗證的快取授權票證 (TGT)。若要使用快取的 TGT,請勿在連線選項中指定使用者和密碼。當您指定這些外掛程式之一且未指定使用者和密碼時,MySQL Shell 不會提供系統使用者名稱,不會提示輸入密碼,也不會嘗試使用 Secret Store 協助程式來擷取或儲存憑證。如需更多資訊,請參閱第 4.3.5 節「使用 LDAP 和 Kerberos 驗證」。
-
確保目標伺服器是 InnoDB Cluster 的一部分,如果是,則將
cluster
全域變數設定為叢集物件。 -
在 SQL 模式下,在列印查詢的傳回結果集之前,列印結果集中每個欄位的元資料,例如欄位類型和定序。
欄位類型會以 MySQL Shell 使用的類型 (
Type
) 和原始資料庫使用的類型 (DBType
) 傳回。對於使用傳統 MySQL 通訊協定的 MySQL Shell 連線,DBType
是由通訊協定傳回的,對於 X 通訊協定連線,DBType
是從可用資訊推斷而來的。欄位長度 (Length
) 以位元組為單位傳回。 -
--compress[={required|preferred|disabled}]
,-C [{required|preferred|disabled}]
控制使用此連線在用戶端和伺服器之間傳送的資訊的壓縮。它也適用於傳統 MySQL 通訊協定和 X 通訊協定連線,您可以選擇性地指定
required
、preferred
或disabled
。當僅指定--compress
時,該值預設為--compress=required
。請參閱第 4.3.7 節「使用壓縮連線」,以取得在所有版本中使用 MySQL Shell 壓縮控制的資訊。 -
設定 MySQL Shell 等待多長時間(以毫秒為單位)以建立透過命令列引數指定的全域工作階段。
-
--credential-store-helper=
helper
用於儲存和擷取密碼的 Secret Store Helper。請參閱第 4.4 節「可插拔密碼儲存」。
-
--database=
,name
-D
name
要使用的預設結構描述。這是
--schema
的別名。 -
在 MySQL Shell 8.4.0 中已棄用。
在與 MySQL 5.7 伺服器連線時啟用 X Plugin,以便您可以將 X 通訊協定連線用於後續連線。需要使用傳統 MySQL 通訊協定進行連線。與 MySQL 8.0 伺服器無關,因為它們預設已啟用 X Plugin。
-
記錄 AdminAPI 作業執行的 SQL 陳述式(不包括沙箱作業)。依預設,即使設定
--log-level
和--verbose
選項,此類別的陳述式也不會寫入 MySQL Shell 應用程式記錄檔或以詳細輸出傳送到主控台。選項的值是一個介於 0 到 2 的整數。0 不會記錄或顯示此類別的陳述式,如果您未指定選項,這是預設行為。1 會記錄 AdminAPI 作業執行的 SQL 陳述式,但SELECT
陳述式和SHOW
陳述式除外(如果您在命令列上指定選項而沒有值,這是預設設定)。2 會完整記錄規則 AdminAPI 作業執行的 SQL 陳述式,包括SELECT
和SHOW
陳述式。如需更多資訊,請參閱第 12 章MySQL Shell 記錄和偵錯。 -
--log-sql[=off|error|on|all|unfiltered]
將 MySQL Shell 執行的所有 SQL 陳述式記錄到 MySQL Shell 記錄檔
mysqlsh.log
提供以下選項
- off
不會記錄任何 MySQL Shell SQL 陳述式。
- error
(預設值)僅記錄 MySQL Shell 失敗的 SQL 陳述式。
- on
記錄所有 MySQL Shell SQL 陳述式,但與
logSql.ignorePattern
和logSql.ignorePatternUnsafe
中定義的忽略模式不符的陳述式除外。如需更多資訊,請參閱篩選 SQL 記錄。- all
記錄所有 MySQL Shell SQL 陳述式,但與
logSql.ignorePatternUnsafe
中定義的忽略模式不符的陳述式除外。如需更多資訊,請參閱篩選 SQL 記錄。- unfiltered
記錄所有 MySQL Shell SQL 陳述式,不執行任何篩選。
-
--execute=
,command
-e
command
使用目前活動的語言執行命令並結束。此選項與
--file=
選項互斥。file_name
-
--file=
,file_name
-f
file_name
指定要在批次模式下處理的檔案。在此之後指定的任何選項都會用作已處理檔案的引數。
-
即使發生錯誤,仍繼續在 SQL 和批次模式下進行處理。
-
指定不會新增到 MySQL Shell 歷程記錄中的字串。字串以冒號分隔。比對不區分大小寫,可以使用萬用字元 * 和 ?。預設忽略的字串指定為 「
*IDENTIFIED*:*PASSWORD*
」。請參閱第 5.5 節「程式碼歷程記錄」。 -
--host=
,host_name
-h
host_name
連線到給定主機上的 MySQL 伺服器。在 Windows 上,如果您指定
--host=.
或-h .
(將主機名稱指定為句點),則 MySQL Shell 會使用預設的具名管道(名稱為MySQL
)或使用--socket
選項指定的替代具名管道進行連線。 -
MySQL Shell 等同於
--get-server-public-key
。如果給定
--server-public-key-path=
並指定有效的公鑰檔案,則其優先於file_name
--get-server-public-key
。重要事項僅支援傳統 MySQL 通訊協定連線。
請參閱快取 SHA-2 可插拔驗證。
-
在批次模式中模擬互動模式。
-
--js
,--javascript
以 JavaScript 模式啟動。
-
控制此工作階段中 MySQL Shell 輸出的 JSON 包裝。此選項適用於將 MySQL Shell 與其他程式介接,例如作為測試的一部分。若要變更查詢結果輸出以使用 JSON 格式,請參閱
--result-format
。當
--json
選項沒有值或值為pretty
時,輸出會產生為美化列印的 JSON。若值為raw
,則輸出會以原始 JSON 格式產生。在上述任一情況下,--result-format
選項及其別名,以及resultFormat
MySQL Shell 設定選項的值都會遭到忽略。若值為off
,則不會進行 JSON 包裝,而且結果集會以--result-format
選項或resultFormat
設定選項所指定的格式正常輸出。 -
變更此 MySQL Shell 執行個體的 MySQL Shell 應用程式記錄檔
mysqlsh.log
的位置。應用程式記錄檔的預設位置是使用者設定路徑,在 Windows 上預設為%APPDATA%\MySQL\mysqlsh\
,在 Unix 上則預設為~/.mysqlsh/
。您可以透過定義環境變數MYSQLSH_USER_CONFIG_HOME
,覆寫所有 MySQL Shell 執行個體的使用者設定路徑。--log-file
選項適用於個別的 MySQL Shell 執行個體,這表示不同的執行個體可以寫入不同的位置。 -
變更 MySQL Shell 應用程式記錄檔
mysqlsh.log
的記錄層級,或停用寫入檔案的記錄。此選項需要一個值,可以是 1 到 8 範圍內的整數,或是none
、internal
、error
、warning
、info
、debug
、debug2
或debug3
其中之一。指定 1 或none
會停用寫入應用程式記錄檔的記錄。如果您未指定此選項,則預設層級為 5 (info
)。請參閱第 12 章,MySQL Shell 記錄和偵錯。 -
在 MySQL Shell 8.0.13 版中已淘汰。自動嘗試使用 X 通訊協定建立工作階段的連線,如果 X 通訊協定無法使用,則會改用傳統 MySQL 通訊協定。
-
--mysql
,--mc
將啟動時建立的全域工作階段設定為使用傳統 MySQL 通訊協定連線。
-
透過覆寫
shell.options.mysqlPluginDir
設定的值,設定用戶端驗證外掛程式的非永久性路徑。用戶端外掛程式會隨附於 MySQL Server 套件中,且可以相對於 MySQL 基本目錄 (basedir
系統變數的值) 找到。例如:在 Windows 主機類型上,
C:\program files\mysql\mysql Server 8.0\lib\plugin
在 Linux 主機類型上,
/usr/local/mysql/lib/plugin
如需隨附於伺服器的用戶端驗證外掛程式清單,請參閱可用的驗證外掛程式。
-
--mysqlx
,--mx
將啟動時建立的全域工作階段設定為使用 X 通訊協定連線。
-
根據作用中的預設結構描述啟用自動載入資料表名稱。
-
--no-name-cache
,-A
停用根據作用中的預設結構描述和 DevAPI
db
物件載入資料表名稱以進行自動完成。使用\rehash
以手動重新載入名稱資訊。 -
連線至伺服器時,如果使用者擁有無密碼的帳戶 (這是不安全的,且不建議使用),或正在使用通訊端點對端認證 (適用於 Unix 通訊端連線),您必須使用
--no-password
明確指定未提供密碼,且不需要密碼提示。 -
--no-wizard
,-nw
停用由建立連線、
dba.configureInstance()
、
等操作提供的互動式精靈。當您想要編寫 MySQL Shell 的指令碼,且不顯示互動式提示時,請使用此選項。如需詳細資訊,請參閱第 5.6 節「批次程式碼執行」和第 5.8 節「API 命令列整合」。Cluster
.rebootClusterFromCompleteOutage() -
--oci-config-file=
pathToConfigFile
設定 OCI 組態檔的路徑,以搭配 OCI 驗證使用,以連線至 HeatWave Service DB 系統。
此處定義的值會覆寫
oci.configFile
選項中定義的值。如需詳細資訊,請參閱使用 authentication_oci 外掛程式進行驗證。
-
--authentication-oci-client-config-profile=
profileName
設定 OCI 組態檔中的設定檔,以搭配 OCI 驗證使用,以連線至 HeatWave Service DB 系統。
此處定義的值會覆寫
oci.profile
選項中定義的值。如需詳細資訊,請參閱使用 authentication_oci 外掛程式進行驗證。
-
MySQL Shell 用來顯示以 SQL 模式執行的陳述式,以及其他選取命令 (例如線上說明) 文字輸出的外部分頁工具。如果您未設定分頁器,則會使用
PAGER
環境變數所指定的分頁器。請參閱第 4.6 節「使用分頁器」。 -
從標準輸入 (而非從終端機) 讀取密碼。此選項不會影響任何其他密碼行為,例如密碼提示。
-
--password[=
,password
]-p
password
連線至伺服器時要使用的密碼。連線至 MySQL Shell 時接受的最大密碼長度為 128 個字元。
-
--password=
(password
-p
) 搭配值可提供用於連線的密碼。使用長格式password
--password=
時,您必須在選項及其值之間使用等號,而不是空格。使用簡短格式-p
時,選項及其值之間不得有空格。如果任一情況中使用空格,則該值不會被解譯為密碼,而且可能會被解譯為另一個連線參數。在命令列上指定密碼應視為不安全。請參閱密碼安全性的終端使用者指南。您可以使用選項檔案來避免在命令列上提供密碼。
不帶值且不使用等號的
--password
或不帶值的-p
會要求輸入密碼提示。帶有空值的
--password=
效果與--no-password
相同,表示使用者在沒有密碼的情況下連線。當連線到伺服器時,如果使用者擁有不安全的無密碼帳戶(不建議使用),或者正在使用 socket 對等憑證驗證(用於 Unix socket 連線),您必須使用這些方法之一明確指定不提供密碼且不需要密碼提示。
-
-
--password1
、--password2
和--password3
是用於需要多因素驗證的帳戶的密碼。您最多可以提供三個密碼。這些選項的工作方式與--password
選項相同,並且--password1
會被視為與該選項等效。您可以在命令列上的選項後指定密碼值(不安全),或者如果選項沒有給定密碼值,MySQL Shell 會依序提示使用者輸入每個密碼。僅支援使用命令列引數進行的傳統 MySQL 通訊協定連線。 -
用於需要多因素驗證的帳戶的第二種驗證方法的密碼。請參閱
--password1
選項的說明。 -
用於需要多因素驗證的帳戶的第三種驗證方法的密碼。請參閱
--password1
選項的說明。 -
--plugin-authentication-webauthn-client-preserve-privacy={OFF|ON}
命令列格式 --plugin-authentication-webauthn-client-preserve-privacy
類型 布林值 預設值 false
決定當為給定的 RP ID(給予依賴方伺服器的唯一名稱,即 MySQL 伺服器)儲存多個可探索憑證時,如何將斷言傳送到伺服器。如果 FIDO2 裝置包含給定 RP ID 的多個駐留金鑰,則此選項允許使用者選擇要用於斷言的金鑰。它提供了客戶端使用者可以設定的兩個可能值。預設值為
false
。如果設定為false
,則挑戰會由給定 RP ID 的所有可用憑證簽署,並且所有簽名都會傳送到伺服器。如果設定為true
,則會提示使用者選擇要用於簽名的憑證。注意如果裝置不支援駐留金鑰功能,則此選項無效。
如需更多資訊,請參閱 WebAuthn 可插拔驗證。
-
--port=
、port_num
-P
port_num
用於連線的 TCP/IP 連接埠號碼。預設值為連接埠 33060。
-
--py
、--python
以 Python 模式啟動。
-
執行 Python 命令並結束。在此之後指定的任何選項都視為已處理命令的引數。
-
在 MySQL Shell 的 Python 模式中將指定的 Python 模組作為指令碼執行。
--pym
的工作方式與 Python 的-m
命令列選項相同。 -
啟動時不列印介紹資訊。MySQL Shell 通常會列印有關產品的資訊、有關會話的資訊(例如預設結構描述和連線 ID)、警告訊息以及啟動和連線期間傳回的任何錯誤。當您指定不帶值或值為 1 的
--quiet-start
時,不會列印有關 MySQL Shell 產品的資訊,但會列印會話資訊、警告和錯誤。如果值為 2,則只會列印錯誤。 -
確保目標伺服器是 InnoDB Cluster 或 InnoDB ReplicaSet 的一部分,如果它不是主要伺服器,則找到主要伺服器並連線到它。當使用此選項時,如果符合下列任何條件,MySQL Shell 將會以錯誤結束
未指定執行個體
在 InnoDB Cluster 上,群組複寫未啟用
InnoDB Cluster 中繼資料不存在
沒有法定人數
-
命令列格式 --register-factor=value
類型 字串 在使用基於 WebAuthn 裝置的驗證之前必須執行 FIDO/FIDO2 裝置註冊的因素。此選項值必須是單一值,或以逗號分隔的兩個值。每個值必須是 2 或 3,因此允許的選項值為
'2'
、'3'
、'2,3'
和'3,2'
。例如,需要註冊第三個驗證因素的帳戶會依如下方式叫用 mysql 客戶端
mysqlsh --user=user_name --register-factor=3
需要註冊第二個和第三個驗證因素的帳戶會依如下方式叫用 mysql 客戶端
mysqlsh --user=user_name --register-factor=2,3
如果註冊成功,則會建立連線。如果存在具有擱置註冊的驗證因素,則當嘗試連線到伺服器時,連線會進入擱置註冊模式。在這種情況下,斷開連線並使用正確的
--register-factor
值重新連線以完成註冊。註冊是一個包含啟動註冊和完成註冊步驟的兩個步驟的過程。啟動註冊步驟會執行此陳述式
ALTER USER user factor INITIATE REGISTRATION
該陳述式會傳回一個結果集,其中包含一個 32 位元組的挑戰、使用者名稱和依賴方 ID(請參閱
authentication_webauthn_rp_id
)。完成註冊步驟會執行此陳述式
ALTER USER user factor FINISH REGISTRATION SET CHALLENGE_RESPONSE AS 'auth_string'
該陳述式會完成註冊,並將以下資訊作為
auth_string
的一部分傳送到伺服器:驗證器資料、X.509 格式的可選證明憑證以及簽名。啟動和註冊步驟必須在單一連線中執行,因為在啟動步驟中客戶端收到的挑戰會儲存到客戶端連線處理常式。如果註冊步驟由不同的連線執行,則註冊將會失敗。
--register-factor
選項會執行啟動和註冊步驟,這避免了上述失敗情況,並防止必須手動執行ALTER USER
啟動和註冊陳述式。--register-factor
選項僅適用於 mysql 客戶端。其他 MySQL 客戶端程式不支援它。如需相關資訊,請參閱 使用 WebAuthn 驗證。
-
確保目標伺服器屬於 InnoDB ReplicaSet,如果是,則使用 InnoDB ReplicaSet 填入
rs
全域變數。然後,您可以使用rs
全域變數管理 InnoDB ReplicaSet,例如透過發出rs.status()
。 -
確保目標伺服器是單一主節點 InnoDB Cluster 或 InnoDB ReplicaSet 的一部分,如果它不是次要節點,則找到次要節點並連線到它。當使用此選項時,如果符合下列任何條件,MySQL Shell 將會以錯誤結束
在 InnoDB Cluster 上,群組複寫未啟用
InnoDB Cluster 中繼資料不存在
沒有法定人數
叢集不是單一主節點,並且以多主節點模式執行
沒有可用的次要節點,例如因為只有一個伺服器執行個體
-
--result-format={table|tabbed|vertical|json|json/pretty|ndjson|json/raw|json/array}
設定此會話的
resultFormat
MySQL Shell 設定選項的值。格式如下- table
除非已在組態檔中為
resultFormat
設定選項永久設定了另一個值,否則互動模式的預設值會套用。也可以使用--table
別名。- tabbed
除非已在組態檔中為
resultFormat
設定選項永久設定了另一個值,否則批次模式的預設值會套用。也可以使用--tabbed
別名。- vertical
產生的輸出等同於 SQL 查詢的
\G
終止符。也可以使用--vertical
或-E
別名。- json 或 json/pretty
產生格式美觀的 JSON。
- ndjson 或 json/raw
產生以新行符號分隔的原始 JSON。
- json/array
產生包裝在 JSON 陣列中的原始 JSON。
如果使用
--json
命令列選項來啟用會話輸出的 JSON 包裝,則會忽略--result-format
選項及其別名以及resultFormat
設定選項的值。 -
--save-passwords={always|prompt|never}
控制是否自動將密碼儲存在密碼儲存區。
always
表示總是儲存密碼,除非密碼已存在於儲存區中,或伺服器 URL 被篩選器排除。never
表示永不儲存密碼。prompt
是預設值,表示會詢問使用者是否要儲存密碼。請參閱第 4.4 節「可插拔密碼儲存區」。 -
--schema=
,name
-D
name
要使用的預設結構描述。
-
--server-public-key-path=
file_name
MySQL Shell 中與
--server-public-key-path
等效的選項。如果給定
--server-public-key-path=
並指定有效的公鑰檔案,則其優先於file_name
--get-server-public-key
。重要事項僅支援傳統 MySQL 通訊協定連線。
請參閱
caching_sha2_password
外掛程式 快取 SHA-2 可插拔身分驗證。 -
如果指定 true(預設值),在 SQL 模式下,MySQL Shell 會在每個 SQL 陳述式執行後顯示警告(如果有的話)。如果指定 false,則不會顯示警告。
-
--socket[=
,path
]-S
[path]
在 Unix 上,如果指定路徑,則該路徑是連線時要使用的 Unix socket 檔案名稱。如果指定
--socket
時沒有值且沒有等號,或-S
時沒有值,則會使用適用通訊協定的預設 Unix socket 檔案。在 Windows 上,路徑是連線時要使用的具名管道名稱。管道名稱不區分大小寫。在 Windows 上,您必須指定路徑,且
--socket
選項僅適用於傳統 MySQL 通訊協定工作階段。如果您在 Unix 上指定埠或主機名稱(除了
localhost
以外),或在 Windows 上指定句號 (.),則無法指定 socket。 -
以 SQL 模式啟動,如果未在連線資訊中指定通訊協定,則自動偵測要使用的通訊協定。如果未指定要使用的通訊協定,則預設為 X 通訊協定連線,並回退到傳統 MySQL 通訊協定連線。若要強制連線使用特定通訊協定,請參閱
--sqlx
或--sqlc
選項。或者,指定要使用的通訊協定作為 URI 般的連線字串一部分,或使用--port
選項。如需詳細資訊,請參閱第 4.3 節「MySQL Shell 連線」和 MySQL Shell 連接埠。 -
以 SQL 模式啟動,強制連線使用傳統 MySQL 通訊協定,例如,將 MySQL Shell 與不支援 X 通訊協定的伺服器搭配使用。如果您未在連線中指定連接埠,當您提供此選項時,MySQL Shell 會使用預設的傳統 MySQL 通訊協定連接埠,通常是 3306。您連線到的連接埠必須支援傳統 MySQL 通訊協定,因此,例如,如果您指定的連線使用 X 通訊協定的預設連接埠 33060,則連線會失敗並顯示錯誤。如需詳細資訊,請參閱第 4.3 節「MySQL Shell 連線」和 MySQL Shell 連接埠。
-
以 SQL 模式啟動,強制連線使用 X 通訊協定。如果您未在連線中指定連接埠,當您提供此選項時,MySQL Shell 會使用預設的 X 通訊協定連接埠,通常是 33060。您連線到的連接埠必須支援 X 通訊協定,因此,例如,如果您指定的連線使用傳統 MySQL 通訊協定的預設連接埠 3306,則連線會失敗並顯示錯誤。如需詳細資訊,請參閱第 4.3 節「MySQL Shell 連線」和 MySQL Shell 連接埠。
-
建立 SSH 通道,提供與 MySQL 伺服器執行個體的加密連線。以
[user@]host[:port]
格式提供與 SSH 伺服器連線的 URI,例如--ssh root@198.51.100.4:2222
當您使用此選項時,您還必須指定
--user
、--host
和--port
選項,或 URI,以連線到 MySQL 伺服器執行個體。如需從 MySQL Shell 進行 SSH 通道連線的資訊,請參閱第 4.3.6 節「使用 SSH 通道」。 -
指定與 SSH 伺服器連線的 SSH 設定檔路徑。如果未指定此選項,您可以使用 MySQL Shell 設定選項
ssh.configFile
,將自訂檔案設定為預設值。如果尚未設定ssh.configFile
,則預設值為標準 SSH 設定檔~/.ssh/config
。如果您指定--ssh-config-file
時沒有值,則會忽略ssh.configFile
指定的預設檔案,並改為使用~/.ssh/config
檔案。 -
指定與 SSH 伺服器連線的身分檔案路徑。如果未指定此選項,則預設值為 SSH 設定資料夾中的標準私密金鑰檔案 (
~/.ssh/id_rsa
)。 -
以
--ssl
開頭的選項指定是否使用 SSL 連線到伺服器,並指出在哪裡尋找 SSL 金鑰和憑證。mysqlsh SSL 選項的功能與 MySQL Server 的 SSL 選項相同,如需詳細資訊,請參閱加密連線的命令選項。mysqlsh 接受下列 SSL 選項:
--ssl-mode
、--ssl-ca
、--ssl-capath
、--ssl-cert
、--ssl-cipher
、--ssl-crl
、--ssl-crlpath
、--ssl-key
、--tls-version
。 -
將您在 MySQL Shell SQL 模式中發出的 SQL 陳述式傳送到作業系統的系統記錄設施(在 Unix 上為
syslog
,或在 Windows 上為 Windows 事件記錄)。僅當 MySQL Shell 以互動模式啟動時,才會進行 SQL 陳述式的系統記錄,因此,可以是正常啟動或以--interactive
選項啟動。如果啟動時使用--execute
或--file
選項以批次模式執行mysqlsh
,則不會進行系統記錄。如需詳細資訊,請參閱第 12.3 節「使用者 SQL 陳述式的系統記錄」。 -
在互動模式下以 tab 分隔的格式顯示結果。該模式的預設值為表格格式。此選項是
--result-format=tabbed
選項的別名。 -
在批次模式下以表格格式顯示結果。該模式的預設值為 tab 分隔的格式。此選項是
--result-format=table
選項的別名。 -
在啟動時建立連線,並以 URI 般的字串指定連線選項,如使用 URI 般的字串或鍵值組連線到伺服器所述。
-
--user=
,user_name
-u
user_name
連線到伺服器時要使用的 MySQL 使用者名稱。
-
啟用詳細輸出至主控台,並指定詳細程度。該值為 0 到 4 的整數。0 不顯示任何訊息,這是當您未指定選項時的預設詳細程度設定。1 顯示錯誤、警告和資訊訊息(如果您在命令列上指定選項但未設定值,則此為預設設定)。2、3 和 4 會新增更高層級的除錯訊息。請參閱第 12 章,MySQL Shell 記錄和除錯 以取得更多資訊。
-
--version
,-V
顯示 MySQL Shell 的版本並結束。
-
--vertical
,-E
垂直顯示結果,如同對 SQL 查詢使用
\G
終止符號一樣。此選項是--result-format=vertical
選項的別名。