MySQL Shell 9.0  /  MySQL Shell 命令參考  /  mysqlsh — MySQL Shell

A.1 mysqlsh — MySQL Shell

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 命令列整合」

  • --auth-method=method

    帳戶使用的驗證方法。取決於帳戶密碼使用的驗證外掛程式。對於使用傳統 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_clientauthentication_kerberos_client 外掛程式,並且使用 --mysql-plugin-dir 選項提供此外掛程式的路徑時,支援 Kerberos 驗證的快取授權票證 (TGT)。若要使用快取的 TGT,請勿在連線選項中指定使用者和密碼。當您指定這些外掛程式之一且未指定使用者和密碼時,MySQL Shell 不會提供系統使用者名稱,不會提示輸入密碼,也不會嘗試使用 Secret Store 協助程式來擷取或儲存憑證。

    如需更多資訊,請參閱第 4.3.5 節「使用 LDAP 和 Kerberos 驗證」

  • --cluster

    確保目標伺服器是 InnoDB Cluster 的一部分,如果是,則將 cluster 全域變數設定為叢集物件。

  • --column-type-info

    在 SQL 模式下,在列印查詢的傳回結果集之前,列印結果集中每個欄位的元資料,例如欄位類型和定序。

    欄位類型會以 MySQL Shell 使用的類型 (Type) 和原始資料庫使用的類型 (DBType) 傳回。對於使用傳統 MySQL 通訊協定的 MySQL Shell 連線,DBType 是由通訊協定傳回的,對於 X 通訊協定連線,DBType 是從可用資訊推斷而來的。欄位長度 (Length) 以位元組為單位傳回。

  • --compress[={required|preferred|disabled}], -C [{required|preferred|disabled}]

    控制使用此連線在用戶端和伺服器之間傳送的資訊的壓縮。它也適用於傳統 MySQL 通訊協定和 X 通訊協定連線,您可以選擇性地指定 requiredpreferreddisabled。當僅指定 --compress 時,該值預設為 --compress=required。請參閱第 4.3.7 節「使用壓縮連線」,以取得在所有版本中使用 MySQL Shell 壓縮控制的資訊。

  • --connect-timeout=ms

    設定 MySQL Shell 等待多長時間(以毫秒為單位)以建立透過命令列引數指定的全域工作階段。

  • --credential-store-helper=helper

    用於儲存和擷取密碼的 Secret Store Helper。請參閱第 4.4 節「可插拔密碼儲存」

  • --database=name, -D name

    要使用的預設結構描述。這是 --schema 的別名。

  • --dba=enableXProtocol

    在 MySQL Shell 8.4.0 中已棄用。

    在與 MySQL 5.7 伺服器連線時啟用 X Plugin,以便您可以將 X 通訊協定連線用於後續連線。需要使用傳統 MySQL 通訊協定進行連線。與 MySQL 8.0 伺服器無關,因為它們預設已啟用 X Plugin。

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

    記錄 AdminAPI 作業執行的 SQL 陳述式(不包括沙箱作業)。依預設,即使設定 --log-level--verbose 選項,此類別的陳述式也不會寫入 MySQL Shell 應用程式記錄檔或以詳細輸出傳送到主控台。選項的值是一個介於 0 到 2 的整數。0 不會記錄或顯示此類別的陳述式,如果您未指定選項,這是預設行為。1 會記錄 AdminAPI 作業執行的 SQL 陳述式,但 SELECT 陳述式和 SHOW 陳述式除外(如果您在命令列上指定選項而沒有值,這是預設設定)。2 會完整記錄規則 AdminAPI 作業執行的 SQL 陳述式,包括 SELECTSHOW 陳述式。如需更多資訊,請參閱第 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.ignorePatternlogSql.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

    指定要在批次模式下處理的檔案。在此之後指定的任何選項都會用作已處理檔案的引數。

  • --force

    即使發生錯誤,仍繼續在 SQL 和批次模式下進行處理。

  • --histignore=strings

    指定不會新增到 MySQL Shell 歷程記錄中的字串。字串以冒號分隔。比對不區分大小寫,可以使用萬用字元 * 和 ?。預設忽略的字串指定為 *IDENTIFIED*:*PASSWORD*。請參閱第 5.5 節「程式碼歷程記錄」

  • --host=host_name, -h host_name

    連線到給定主機上的 MySQL 伺服器。在 Windows 上,如果您指定 --host=.-h .(將主機名稱指定為句點),則 MySQL Shell 會使用預設的具名管道(名稱為 MySQL)或使用 --socket 選項指定的替代具名管道進行連線。

  • --get-server-public-key

    MySQL Shell 等同於 --get-server-public-key

    如果給定 --server-public-key-path=file_name 並指定有效的公鑰檔案,則其優先於 --get-server-public-key

    重要事項

    僅支援傳統 MySQL 通訊協定連線。

    請參閱快取 SHA-2 可插拔驗證

  • --interactive[=full], -i

    在批次模式中模擬互動模式。

  • --js, --javascript

    以 JavaScript 模式啟動。

  • --json[={off|pretty|raw}]

    控制此工作階段中 MySQL Shell 輸出的 JSON 包裝。此選項適用於將 MySQL Shell 與其他程式介接,例如作為測試的一部分。若要變更查詢結果輸出以使用 JSON 格式,請參閱 --result-format

    --json 選項沒有值或值為 pretty 時,輸出會產生為美化列印的 JSON。若值為 raw,則輸出會以原始 JSON 格式產生。在上述任一情況下,--result-format 選項及其別名,以及 resultFormat MySQL Shell 設定選項的值都會遭到忽略。若值為 off,則不會進行 JSON 包裝,而且結果集會以 --result-format 選項或 resultFormat 設定選項所指定的格式正常輸出。

  • --log-file=path

    變更此 MySQL Shell 執行個體的 MySQL Shell 應用程式記錄檔 mysqlsh.log 的位置。應用程式記錄檔的預設位置是使用者設定路徑,在 Windows 上預設為 %APPDATA%\MySQL\mysqlsh\,在 Unix 上則預設為 ~/.mysqlsh/。您可以透過定義環境變數 MYSQLSH_USER_CONFIG_HOME,覆寫所有 MySQL Shell 執行個體的使用者設定路徑。--log-file 選項適用於個別的 MySQL Shell 執行個體,這表示不同的執行個體可以寫入不同的位置。

  • --log-level=N

    變更 MySQL Shell 應用程式記錄檔 mysqlsh.log 的記錄層級,或停用寫入檔案的記錄。此選項需要一個值,可以是 1 到 8 範圍內的整數,或是 noneinternalerrorwarninginfodebugdebug2debug3 其中之一。指定 1 或 none 會停用寫入應用程式記錄檔的記錄。如果您未指定此選項,則預設層級為 5 (info)。請參閱第 12 章,MySQL Shell 記錄和偵錯

  • -ma

    在 MySQL Shell 8.0.13 版中已淘汰。自動嘗試使用 X 通訊協定建立工作階段的連線,如果 X 通訊協定無法使用,則會改用傳統 MySQL 通訊協定。

  • --mysql, --mc

    將啟動時建立的全域工作階段設定為使用傳統 MySQL 通訊協定連線。

  • --mysql-plugin-dir=path

    透過覆寫 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 通訊協定連線。

  • --name-cache

    根據作用中的預設結構描述啟用自動載入資料表名稱。

  • --no-name-cache, -A

    停用根據作用中的預設結構描述和 DevAPI db 物件載入資料表名稱以進行自動完成。使用 \rehash 以手動重新載入名稱資訊。

  • --no-password

    連線至伺服器時,如果使用者擁有無密碼的帳戶 (這是不安全的,且不建議使用),或正在使用通訊端點對端認證 (適用於 Unix 通訊端連線),您必須使用 --no-password 明確指定未提供密碼,且不需要密碼提示。

  • --no-wizard, -nw

    停用由建立連線、dba.configureInstance()Cluster.rebootClusterFromCompleteOutage() 等操作提供的互動式精靈。當您想要編寫 MySQL Shell 的指令碼,且不顯示互動式提示時,請使用此選項。如需詳細資訊,請參閱第 5.6 節「批次程式碼執行」第 5.8 節「API 命令列整合」

  • --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 外掛程式進行驗證

  • --pager=name

    MySQL Shell 用來顯示以 SQL 模式執行的陳述式,以及其他選取命令 (例如線上說明) 文字輸出的外部分頁工具。如果您未設定分頁器,則會使用 PAGER 環境變數所指定的分頁器。請參閱第 4.6 節「使用分頁器」

  • --passwords-from-stdin

    從標準輸入 (而非從終端機) 讀取密碼。此選項不會影響任何其他密碼行為,例如密碼提示。

  • --password[=password], -ppassword

    連線至伺服器時要使用的密碼。連線至 MySQL Shell 時接受的最大密碼長度為 128 個字元。

    • --password=password (-ppassword) 搭配值可提供用於連線的密碼。使用長格式 --password= 時,您必須在選項及其值之間使用等號,而不是空格。使用簡短格式 -p 時,選項及其值之間不得有空格。如果任一情況中使用空格,則該值不會被解譯為密碼,而且可能會被解譯為另一個連線參數。

      在命令列上指定密碼應視為不安全。請參閱密碼安全性的終端使用者指南。您可以使用選項檔案來避免在命令列上提供密碼。

    • 不帶值且不使用等號的 --password 或不帶值的 -p 會要求輸入密碼提示。

    • 帶有空值的 --password= 效果與 --no-password 相同,表示使用者在沒有密碼的情況下連線。當連線到伺服器時,如果使用者擁有不安全的無密碼帳戶(不建議使用),或者正在使用 socket 對等憑證驗證(用於 Unix socket 連線),您必須使用這些方法之一明確指定不提供密碼且不需要密碼提示。

  • --password1[=password]

    --password1--password2--password3 是用於需要多因素驗證的帳戶的密碼。您最多可以提供三個密碼。這些選項的工作方式與 --password 選項相同,並且 --password1 會被視為與該選項等效。您可以在命令列上的選項後指定密碼值(不安全),或者如果選項沒有給定密碼值,MySQL Shell 會依序提示使用者輸入每個密碼。僅支援使用命令列引數進行的傳統 MySQL 通訊協定連線。

  • --password2[=password]

    用於需要多因素驗證的帳戶的第二種驗證方法的密碼。請參閱 --password1 選項的說明。

  • --password3[=password]

    用於需要多因素驗證的帳戶的第三種驗證方法的密碼。請參閱 --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 模式啟動。

  • --pyc=pythonCommand-c

    執行 Python 命令並結束。在此之後指定的任何選項都視為已處理命令的引數。

  • --pym

    在 MySQL Shell 的 Python 模式中將指定的 Python 模組作為指令碼執行。--pym 的工作方式與 Python 的 -m 命令列選項相同。

  • --quiet-start[=1|2]

    啟動時不列印介紹資訊。MySQL Shell 通常會列印有關產品的資訊、有關會話的資訊(例如預設結構描述和連線 ID)、警告訊息以及啟動和連線期間傳回的任何錯誤。當您指定不帶值或值為 1 的 --quiet-start 時,不會列印有關 MySQL Shell 產品的資訊,但會列印會話資訊、警告和錯誤。如果值為 2,則只會列印錯誤。

  • --redirect-primary

    確保目標伺服器是 InnoDB Cluster 或 InnoDB ReplicaSet 的一部分,如果它不是主要伺服器,則找到主要伺服器並連線到它。當使用此選項時,如果符合下列任何條件,MySQL Shell 將會以錯誤結束

    • 未指定執行個體

    • 在 InnoDB Cluster 上,群組複寫未啟用

    • InnoDB Cluster 中繼資料不存在

    • 沒有法定人數

  • --register-factor=value

    命令列格式 --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 驗證

  • --replicaset

    確保目標伺服器屬於 InnoDB ReplicaSet,如果是,則使用 InnoDB ReplicaSet 填入 rs 全域變數。然後,您可以使用 rs 全域變數管理 InnoDB ReplicaSet,例如透過發出 rs.status()

  • --redirect-secondary

    確保目標伺服器是單一主節點 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 可插拔身分驗證

  • --show-warnings={true|false}

    如果指定 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

    以 SQL 模式啟動,如果未在連線資訊中指定通訊協定,則自動偵測要使用的通訊協定。如果未指定要使用的通訊協定,則預設為 X 通訊協定連線,並回退到傳統 MySQL 通訊協定連線。若要強制連線使用特定通訊協定,請參閱 --sqlx--sqlc 選項。或者,指定要使用的通訊協定作為 URI 般的連線字串一部分,或使用 --port 選項。如需詳細資訊,請參閱第 4.3 節「MySQL Shell 連線」MySQL Shell 連接埠

  • --sqlc

    以 SQL 模式啟動,強制連線使用傳統 MySQL 通訊協定,例如,將 MySQL Shell 與不支援 X 通訊協定的伺服器搭配使用。如果您未在連線中指定連接埠,當您提供此選項時,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 連接埠

  • --ssh=str

    建立 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-config-file=path

    指定與 SSH 伺服器連線的 SSH 設定檔路徑。如果未指定此選項,您可以使用 MySQL Shell 設定選項 ssh.configFile,將自訂檔案設定為預設值。如果尚未設定 ssh.configFile,則預設值為標準 SSH 設定檔 ~/.ssh/config。如果您指定 --ssh-config-file 時沒有值,則會忽略 ssh.configFile 指定的預設檔案,並改為使用 ~/.ssh/config 檔案。

  • --ssh-identity-file=path

    指定與 SSH 伺服器連線的身分檔案路徑。如果未指定此選項,則預設值為 SSH 設定資料夾中的標準私密金鑰檔案 (~/.ssh/id_rsa)。

  • --ssl*

    --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

  • --syslog

    將您在 MySQL Shell SQL 模式中發出的 SQL 陳述式傳送到作業系統的系統記錄設施(在 Unix 上為 syslog,或在 Windows 上為 Windows 事件記錄)。僅當 MySQL Shell 以互動模式啟動時,才會進行 SQL 陳述式的系統記錄,因此,可以是正常啟動或以 --interactive 選項啟動。如果啟動時使用 --execute--file 選項以批次模式執行 mysqlsh,則不會進行系統記錄。如需詳細資訊,請參閱第 12.3 節「使用者 SQL 陳述式的系統記錄」

  • --tabbed

    在互動模式下以 tab 分隔的格式顯示結果。該模式的預設值為表格格式。此選項是 --result-format=tabbed 選項的別名。

  • --table

    在批次模式下以表格格式顯示結果。該模式的預設值為 tab 分隔的格式。此選項是 --result-format=table 選項的別名。

  • --uri=str

    在啟動時建立連線,並以 URI 般的字串指定連線選項,如使用 URI 般的字串或鍵值組連線到伺服器所述。

  • --user=user_name, -u user_name

    連線到伺服器時要使用的 MySQL 使用者名稱。

  • --verbose[=0|1|2|3|4]

    啟用詳細輸出至主控台,並指定詳細程度。該值為 0 到 4 的整數。0 不顯示任何訊息,這是當您未指定選項時的預設詳細程度設定。1 顯示錯誤、警告和資訊訊息(如果您在命令列上指定選項但未設定值,則此為預設設定)。2、3 和 4 會新增更高層級的除錯訊息。請參閱第 12 章,MySQL Shell 記錄和除錯 以取得更多資訊。

  • --version, -V

    顯示 MySQL Shell 的版本並結束。

  • --vertical, -E

    垂直顯示結果,如同對 SQL 查詢使用 \G 終止符號一樣。此選項是 --result-format=vertical 選項的別名。