在命令列上指定的程式選項遵循以下規則
選項在命令名稱之後給定。
選項引數以一個破折號或兩個破折號開頭,具體取決於它是選項名稱的簡短形式還是長形式。許多選項都有簡短和長形式。例如,
-?
和--help
是選項的簡短和長形式,指示 MySQL 程式顯示其說明訊息。選項名稱區分大小寫。
-v
和-V
都是合法的,並且具有不同的含義。(它們分別是--verbose
和--version
選項的對應簡短形式。)某些選項在選項名稱後接受一個值。例如,
-h localhost
或--host=localhost
向用戶端程式指示 MySQL 伺服器主機。選項值會告知程式 MySQL 伺服器正在執行的主機名稱。對於接受數值的長選項,請以
=
符號分隔選項名稱和數值。對於接受數值的短選項,選項值可以緊接在選項字母之後,或者可以在兩者之間留一個空格:-hlocalhost
和-h localhost
是等效的。此規則的一個例外是指定您的 MySQL 密碼的選項。此選項可以長形式給定為--password=
或pass_val
--password
。在後一種情況下(未給定密碼值),程式會以互動方式提示您輸入密碼。密碼選項也可以短形式給定為-p
或pass_val
-p
。但是,對於短形式,如果給定了密碼值,則必須在選項字母後緊接密碼值,且沒有中間空格:如果選項字母後接一個空格,則程式無法判斷後面的引數應該是密碼值還是其他類型的引數。因此,以下兩個命令具有兩個完全不同的含義mysql -ptest mysql -p test
第一個命令指示 mysql 使用密碼值
test
,但未指定預設資料庫。第二個命令指示 mysql 提示輸入密碼值並使用test
作為預設資料庫。在選項名稱中,破折號 (
-
) 和底線 (_
) 在大多數情況下可以互換使用,儘管前導破折號不能以底線的形式給定。例如,--skip-grant-tables
和--skip_grant_tables
是等效的。在本手冊中,我們在選項名稱中使用破折號,除非底線很重要。例如,
--log-bin
和--log_bin
就是這種情況,它們是不同的選項。我們也鼓勵您這樣做。MySQL 伺服器具有某些命令選項,這些選項只能在啟動時指定,以及一組系統變數,其中一些系統變數可以在啟動時、執行時或兩者都設定。系統變數名稱使用底線而不是破折號,並且在執行時引用時(例如,使用
SET
或SELECT
陳述式),必須使用底線書寫SET GLOBAL general_log = ON; SELECT @@GLOBAL.general_log;
在伺服器啟動時,系統變數的語法與命令選項的語法相同,因此在變數名稱中,破折號和底線可以互換使用。例如,
--general_log=ON
和--general-log=ON
是等效的。(對於在選項檔案中設定的系統變數,情況也是如此。)對於接受數值的選項,數值可以加上後綴
K
、M
或G
,以表示 1024、10242 或 10243 的乘數。從 MySQL 8.0.14 開始,後綴也可以是T
、P
和E
,以表示 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
) 後面接著等號 (=
)。
若要在陳述式中使用引號值,您必須跳脫內層的引號,或在陳述式內使用與引用陳述式本身不同的引號類型。您的命令處理器的功能決定了您是否可以使用單引號或雙引號,以及跳脫引號字元的語法。例如,如果您的命令處理器支援使用單引號或雙引號來引用,您可以在陳述式周圍使用雙引號,並在陳述式內的任何引用值使用單引號。