top
Loading...
4.3.1.在命令行上使用選項
4.3.1. 在命令行上使用選項

在命令行中指定的程序選項遵從下述規則:

·         在命令名后面緊跟選項。

·         選項參量以一個和兩個破折號開始,取決于它具有短名還是長名。許多選項有兩種形式。例如,-?--help是指導MySQL程序顯示幫助消息的選項的短名和長名。

·         選項名對大小寫敏感。-v-V均有效,但具有不同的含義。(它們是--verbose--version選項的短名)

·         部分選項在選項名后面緊隨選項值。例如,-h localhost--host=localhost表示客戶程序的MySQL服務器主機。選項值可以告訴程序MySQL服務器運行的主機名。

·         對于帶選項值的長選項,通過一個‘=’將選項名和值隔離開來。對于帶選項值的短選項,選項值可以緊隨選項字母后面,或者二者之間可以用一個空格隔開。(-hlocalhost-h localhost是等效的)該規則的例外情況是指定MySQL密碼的選項。該選項的形式可以為--password=pass_val--password。在后一種情況(未給出 密碼值),程序將提示輸入密碼。也可以給出密碼選項,短形式為-ppass_val-p。然而,對于短形式,如果給出了 密碼值,必須緊跟在選項后面,中間不能插入空格。這樣要求的原因是如果選項后面有空格,程序沒有辦法來告知后面的參量是 密碼值還是其它某種參量。因此,下面兩個命令的含義完全不同:

·                shell> mysql -ptest
·                shell> mysql -p test

第一個命令讓mysql使用密碼test,但沒有指定默認數據庫。第二個命令讓mysql提示輸入 密碼并使用test作為默認數據庫。

部分選項控制可以開關的行為。例如,mysql客戶端支持--column-names選項,確定是否在查詢結果開頭顯示一行欄目名。默認情況,該選項被啟用。但是可能在某些情況下你想要禁用它,例如將mysql的輸出發送到另一個只希望看到數據而不希望看到開始的標題行的程序中。

要想禁用列名,可以使用下面的形式來指定選項:

--disable-column-names
--skip-column-names
--column-names=0

--disable--skip前綴與=0后綴的效果相同:它們均關閉選項。

可以用下述方法“啟用”選項:

--column-names
--enable-column-names
--column-names=1

如果選項有前綴--loose,如果程序未識別出選項不會提示錯誤退出,但是會發出一條警告:

shell> mysql --loose-no-such-option
mysql: WARNING: unknown option '--no-such-option'

當你從安裝了多個MySQL的同一臺機器上運行程序時,--loose前綴會很有用。當你在一個選項文件中列出選項時,該前綴會特別有用。有可能不能被程序的所有版本識別的選項可以冠以--loose前綴(或在選項文件中用loose)。不能識別選項的程序版本將會發出一條警告并忽視該選項。

mysql偶爾有用的另一個選項是-e--execute選項,可用來將SQL語句傳遞給服務器。該語句必須用引號引起來(單引號或雙引號)(然而,如果想要在查詢中將值引起來,則對于查詢應使用雙引號,查詢中引用的值應使用單引號)當使用該選項時,語句被執行,然后mysql立即退出命令外殼。

例如,你可以用下面的命令獲得用戶賬戶列表:

shell> mysql -u root -p -e "SELECT User, Host FROM User" mysql
Enter password: ******
+------+-----------+
| User | Host      |
+------+-----------+
|      | gigan     |
| root | gigan     |
|      | localhost |
| jon  | localhost |
| root | localhost |
+------+-----------+
shell>

請注意mysql數據庫名作為一個獨立的參量傳遞。然而,相同的查詢可能已經使用mysql -u root -p -e "SELECT UserHost FROM mysql.User"從外殼中執行。

可以按這種方式傳遞多個SQL語句,用分號隔開:

shell> mysql -u root -p --execute="SELECT Name FROM Country WHERE Name LIKE 'AU%';SELECT COUNT(*) FROM City" world
Enter password: ******
+-----------+
| Name      |
+-----------+
| Australia |
| Austria   |
+-----------+
+----------+
| COUNT(*) |
+----------+
|     4079 |
+----------+

請注意長形式(--execute)后面必須緊跟一個等號(=)

-e選項也可以以類似方式用來將命令傳遞給MySQL簇的ndb_mgm管理客戶端。相關例子參見17.3.6節,“安全關閉和重啟”。

作者:mysql.com
來源:http://dev.mysql.com/doc/refman/5.1/zh/using-mysql-programs.html
北斗有巢氏 有巢氏北斗