文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手冊頁 (TGZ) - 258.5Kb
手冊頁 (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  在命令列上使用選項

6.2.2.1 在命令列上使用選項

在命令列上指定的程式選項遵循以下規則

  • 選項在命令名稱之後給定。

  • 選項引數以一個破折號或兩個破折號開頭,具體取決於它是選項名稱的簡短形式還是長形式。許多選項都有簡短和長形式。例如,-?--help 是選項的簡短和長形式,指示 MySQL 程式顯示其說明訊息。

  • 選項名稱區分大小寫。-v-V 都是合法的,並且具有不同的含義。(它們分別是 --verbose--version 選項的對應簡短形式。)

  • 某些選項在選項名稱後接受一個值。例如,-h localhost--host=localhost 向用戶端程式指示 MySQL 伺服器主機。選項值會告知程式 MySQL 伺服器正在執行的主機名稱。

  • 對於接受數值的長選項,請以 = 符號分隔選項名稱和數值。對於接受數值的短選項,選項值可以緊接在選項字母之後,或者可以在兩者之間留一個空格:-hlocalhost-h localhost 是等效的。此規則的一個例外是指定您的 MySQL 密碼的選項。此選項可以長形式給定為 --password=pass_val--password。在後一種情況下(未給定密碼值),程式會以互動方式提示您輸入密碼。密碼選項也可以短形式給定為 -ppass_val-p。但是,對於短形式,如果給定了密碼值,則必須在選項字母後緊接密碼值,且沒有中間空格:如果選項字母後接一個空格,則程式無法判斷後面的引數應該是密碼值還是其他類型的引數。因此,以下兩個命令具有兩個完全不同的含義

    mysql -ptest
    mysql -p test

    第一個命令指示 mysql 使用密碼值 test,但未指定預設資料庫。第二個命令指示 mysql 提示輸入密碼值並使用 test 作為預設資料庫。

  • 在選項名稱中,破折號 (-) 和底線 (_) 在大多數情況下可以互換使用,儘管前導破折號不能以底線的形式給定。例如,--skip-grant-tables--skip_grant_tables 是等效的。

    在本手冊中,我們在選項名稱中使用破折號,除非底線很重要。例如,--log-bin--log_bin 就是這種情況,它們是不同的選項。我們也鼓勵您這樣做。

  • MySQL 伺服器具有某些命令選項,這些選項只能在啟動時指定,以及一組系統變數,其中一些系統變數可以在啟動時、執行時或兩者都設定。系統變數名稱使用底線而不是破折號,並且在執行時引用時(例如,使用 SETSELECT 陳述式),必須使用底線書寫

    SET GLOBAL general_log = ON;
    SELECT @@GLOBAL.general_log;

    在伺服器啟動時,系統變數的語法與命令選項的語法相同,因此在變數名稱中,破折號和底線可以互換使用。例如,--general_log=ON--general-log=ON 是等效的。(對於在選項檔案中設定的系統變數,情況也是如此。)

  • 對於接受數值的選項,數值可以加上後綴 KMG,以表示 1024、10242 或 10243 的乘數。從 MySQL 8.0.14 開始,後綴也可以是 TPE,以表示 10244、10245 或 10246 的乘數。後綴字母可以是大小寫。

    例如,以下命令告知 mysqladmin ping 伺服器 1024 次,每次 ping 之間休眠 10 秒

    mysqladmin --count=1K --sleep=10 ping
  • 將檔案名稱指定為選項值時,請避免使用 ~ shell 元字元。它可能不會按照您的預期進行解譯。

包含空格的選項值在命令列上給定時必須加上引號。例如,--execute(或 -e)選項可以與 mysql 一起使用,以將一個或多個以分號分隔的 SQL 陳述式傳遞至伺服器。使用此選項時,mysql 會執行選項值中的陳述式並退出。陳述式必須用引號括起來。例如

$> mysql -u root -p -e "SELECT VERSION();SELECT NOW()"
Enter password: ******
+------------+
| VERSION()  |
+------------+
| 8.0.19     |
+------------+
+---------------------+
| NOW()               |
+---------------------+
| 2019-09-03 10:36:48 |
+---------------------+
$>
注意

長形式 (--execute) 後面接著等號 (=)。

若要在陳述式中使用引號值,您必須跳脫內層的引號,或在陳述式內使用與引用陳述式本身不同的引號類型。您的命令處理器的功能決定了您是否可以使用單引號或雙引號,以及跳脫引號字元的語法。例如,如果您的命令處理器支援使用單引號或雙引號來引用,您可以在陳述式周圍使用雙引號,並在陳述式內的任何引用值使用單引號。