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-Dname要使用的預設結構描述。這是
--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-ecommand使用目前活動的語言執行命令並結束。此選項與
--file=選項互斥。file_name -
--file=,file_name-ffile_name指定要在批次模式下處理的檔案。在此之後指定的任何選項都會用作已處理檔案的引數。
-
即使發生錯誤,仍繼續在 SQL 和批次模式下進行處理。
-
指定不會新增到 MySQL Shell 歷程記錄中的字串。字串以冒號分隔。比對不區分大小寫,可以使用萬用字元 * 和 ?。預設忽略的字串指定為 「
*IDENTIFIED*:*PASSWORD*」。請參閱第 5.5 節「程式碼歷程記錄」。 -
--host=,host_name-hhost_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選項及其別名,以及resultFormatMySQL 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]-ppassword連線至伺服器時要使用的密碼。連線至 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-Pport_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}設定此會話的
resultFormatMySQL 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-Dname要使用的預設結構描述。
-
--server-public-key-path=file_nameMySQL 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-uuser_name連線到伺服器時要使用的 MySQL 使用者名稱。
-
啟用詳細輸出至主控台,並指定詳細程度。該值為 0 到 4 的整數。0 不顯示任何訊息,這是當您未指定選項時的預設詳細程度設定。1 顯示錯誤、警告和資訊訊息(如果您在命令列上指定選項但未設定值,則此為預設設定)。2、3 和 4 會新增更高層級的除錯訊息。請參閱第 12 章,MySQL Shell 記錄和除錯 以取得更多資訊。
-
--version,-V顯示 MySQL Shell 的版本並結束。
-
--vertical,-E垂直顯示結果,如同對 SQL 查詢使用
\G終止符號一樣。此選項是--result-format=vertical選項的別名。