コマンド行で指定されるプログラムオプションは次のルールに従います。
オプションはコマンド名のあとに指定します。
オプション引数は、それがオプション名の短い形式か長い形式かによって、1 つまたは 2 つのダッシュで始まります。多くのオプションには短い形式と長い形式の両方があります。たとえば、
-?
と--help
は、 MySQL プログラムに対してヘルプメッセージの表示を指示するオプションの短い形式と長い形式です。オプション名では大文字と小文字が区別されます。
-v
と-V
はいずれも正当で、異なる意味を持ちます。(これらは、--verbose
および--version
オプションに対応する短い形式です。)一部のオプションは、オプション名に続いて値を取ります。たとえば、
-h localhost
または--host=localhost
は、クライアントプログラムに対して MySQL サーバーホストを示します。オプション値は、プログラムに対して MySQL サーバーが稼働しているホストの名前を示します。-
値を取る長いオプションでは、オプション名と値を 「
=
」 記号で区切ります。値を取る短いオプションでは、オプション値はオプション文字の直後に続けるか、または間にスペースがあってもかまいません。-hlocalhost
と-h localhost
は同等です。このルールの例外は、MySQL のパスワードを指定するオプションです。このオプションは、長い形式で--password=
として、またはpass_val
--password
として指定できます。後者の場合 (パスワード値を指定しない場合)、プログラムはパスワードを要求します。パスワードオプションは、短い形式で-p
またはpass_val
-p
としても指定できます。しかし短い形式の場合、パスワード値を指定する場合は、間にスペースを入れずにオプション文字に続けなければいけません。この理由は、オプション文字にスペースが続く場合、続く引数がパスワード値なのかほかの種類の引数なのかをプログラムが判断する方法がないためです。その結果、次の 2 つのコマンドは 2 つのまったく異なる意味を持ちます。shell> mysql -ptest shell> mysql -p test
最初のコマンドは、パスワード値
test
を使用することを mysql に指示しますが、デフォルトデータベースの指定は行いません。2 番目は、パスワード値を要求し、test
をデフォルトデータベースとして使用することを mysql に指示します。 オプション名内では、ダッシュ (「
-
」) と下線 (「_
」) を区別なく使用できます。たとえば、--skip-grant-tables
と--skip_grant_tables
は同等です。(ただし、先頭のダッシュは下線で指定することはできません。)-
数値を取るオプションについては、値は、1024、10242 または 10243 の乗数を示すために、
K
、M
またはG
(大文字または小文字) のサフィクスで指定できます。たとえば、次のコマンドは mysqladmin に対し、サーバーに 1024 回 ping を実行し、各 ping の間に 10 秒間スリープすることを指示します。mysql> mysqladmin --count=1K --sleep=10 ping
スペースを含むオプション値をコマンド行で指定する場合は、引用符で囲まなければなりません。たとえば、--execute
(または -e
) オプションを mysql とともに使用して、SQL ステートメントをサーバーに渡すことができます。このオプションが使用されると、mysql はオプション値のステートメントを実行して終了します。ステートメントは引用符で囲む必要があります。たとえば、次のコマンドを使用してユーザーアカウントのリストを取得できます。
mysql> mysql -u root -p --execute="SELECT User, Host FROM mysql.user"
Enter password: ******
+------+-----------+
| User | Host |
+------+-----------+
| | gigan |
| root | gigan |
| | localhost |
| jon | localhost |
| root | localhost |
+------+-----------+
shell>
長い形式 (--execute
) には、等号 (=
) が続くことに注意してください。
ステートメント内で引用符に囲まれた値を使用する場合は、内側の引用符をエスケープするか、ステートメント内ではステートメント自体を囲むのに使用する引用符とは異なるタイプの引用符を使用する必要があります。一重引用符または二重引用符を使用できるかどうか、および引用符文字をエスケープするための構文は、コマンドプロセッサの機能により異なります。たとえば、コマンドプロセッサが一重引用符または二重引用符の使用をサポートする場合、ステートメントの周囲には二重引用符を使用し、ステートメント内の引用符で囲む値には一重引用符を使用できます。
コマンド行のオプション値に複数の SQL ステートメントをセミコロンで区切って渡すことができます。
shell> mysql -u root -p -e "SELECT VERSION();SELECT NOW()"
Enter password: ******
+-----------------+
| VERSION() |
+-----------------+
| 5.1.5-alpha-log |
+-----------------+
+---------------------+
| NOW() |
+---------------------+
| 2006-01-05 21:19:04 |
+---------------------+