MySQL Shell 是 MySQL 的進階命令列用戶端和程式碼編輯器。除了 SQL 之外,MySQL Shell 還提供 JavaScript 和 Python 的腳本功能。如需使用 MySQL Shell 的相關資訊,請參閱MySQL Shell 8.4.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驗證外掛程式的帳戶進行驗證。請參閱搭配快取 SHA-2 驗證外掛程式使用 X 外掛程式。- SHA256_MEMORY
使用記憶體中儲存的雜湊密碼進行驗證。此選項可用於使用快取認證來驗證使用
caching_sha2_password驗證外掛程式的帳戶,其中有非 SSL 連線。請參閱搭配快取 SHA-2 驗證外掛程式使用 X 外掛程式。
對於使用傳統 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 伺服器套件一起提供。若要載入它,您必須使用--mysql-plugin-dir選項來指定 MySQL 伺服器套件中外掛程式的路徑。- authentication_kerberos_client
authentication_kerberos_client用戶端外掛程式適用於 Kerberos 驗證。它並未內建於 MySQL 用戶端程式庫中,而是隨 MySQL 伺服器套件一起提供。若要載入它,您必須使用--mysql-plugin-dir選項來指定 MySQL 伺服器套件中外掛程式的路徑。
從 MySQL 8.0.27 開始,當使用
--auth-method選項來指定authentication_ldap_sasl_client或authentication_kerberos_client外掛程式,且使用--mysql-plugin-dir選項來提供外掛程式的路徑時,支援 Kerberos 驗證的快取授權票證 (TGT)。若要使用快取的 TGT,請勿在連線選項中指定使用者和密碼。當您指定其中一個外掛程式且未指定使用者和密碼時,MySQL Shell 不會提供系統使用者名稱、不會提示輸入密碼,也不會嘗試使用密碼儲存輔助程式來擷取或儲存憑證。如需更多資訊,請參閱第 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。如需在所有版本中使用 MySQL Shell 的壓縮控制的資訊,請參閱第 4.3.7 節「使用壓縮連線」。 -
設定 MySQL Shell 等待多長時間 (以毫秒為單位) 來建立透過命令列引數指定的全域會期。
-
--credential-store-helper=helper要用於儲存和擷取密碼的密碼儲存輔助程式。請參閱第 4.4 節「可插拔密碼儲存」。
-
--database=、name-Dname要使用的預設綱要。這是
--schema的別名。 -
在 MySQL Shell 8.4.0 中已棄用。
在與 MySQL 5.7 伺服器的連線上啟用 X Plugin,以便您可以使用 X 通訊協定連線進行後續連線。需要使用傳統 MySQL 通訊協定的連線。與預設啟用 X Plugin 的 MySQL 8.0 伺服器無關。
-
記錄 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系統變數的值)找到。例如C:\program files\mysql\mysql Server 8.0\lib\plugin在 Windows 主機類型上/usr/local/mysql/lib/plugin在 Linux 主機類型上
如需隨附於伺服器的用戶端驗證外掛程式的清單,請參閱可用的驗證外掛程式。
-
--mysqlx,--mx設定在啟動時建立的全域工作階段,以使用 X 通訊協定連線。
-
根據使用中的預設結構描述,啟用表格名稱的自動載入。
-
--no-name-cache,-A停用根據使用中的預設結構描述和 DevAPI
db物件載入表格名稱以進行自動完成。請使用\rehash手動重新載入名稱資訊。 -
當連線至伺服器時,如果使用者具有無密碼的帳戶(不安全且不建議使用),或正在使用 Socket 對等認證(適用於 Unix Socket 連線),您必須使用
--no-password明確指定未提供密碼且不需要密碼提示。 -
--no-wizard,-nw停用由建立連線、
dba.configureInstance()、等作業提供的互動式精靈。當您想要撰寫 MySQL Shell 的指令碼,且不想顯示互動式提示時,請使用此選項。如需詳細資訊,請參閱第 5.6 節「批次程式碼執行」和第 5.8 節「API 命令列整合」。Cluster.rebootClusterFromCompleteOutage() -
--oci-config-file=pathToConfigFile設定 OCI 組態檔的路徑,以便使用 OCI 驗證連線至 HeatWave Service 資料庫系統。
此處定義的值會覆寫
oci.configFile選項中定義的值。如需詳細資訊,請參閱使用 authentication_oci 外掛程式驗證。
-
--authentication-oci-client-config-profile=profileName設定 OCI 組態檔中的設定檔,以便使用 OCI 驗證連線至 HeatWave Service 資料庫系統。
此處定義的值會覆寫
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=值類型 字串 在使用 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=、名稱-D名稱要使用的預設綱要。
-
MySQL Shell 對應於
--server-public-key-path的選項。如果指定了
--server-public-key-path=並且指定了有效的公開金鑰檔案,則它會優先於file_name--get-server-public-key。重要僅支援使用傳統 MySQL 通訊協定的連線。
請參閱
caching_sha2_password外掛程式的快取 SHA-2 可插拔身分驗證。 -
如果指定為 true (預設值),在 SQL 模式中,如果每個 SQL 語句後有任何警告,MySQL Shell 會顯示警告。如果指定為 false,則不會顯示警告。
-
--socket[=、路徑]-S[路徑]在 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 伺服器執行個體的加密連線。以
[使用者@]主機[:連接埠]的格式提供連線至 SSH 伺服器的 URI,例如--ssh root@198.51.100.4:2222當您使用此選項時,您也必須指定
--user、--host和--port選項,或連線至 MySQL 伺服器執行個體的 URI。如需 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 伺服器的 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 事件記錄檔)。只有在 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選項的別名。