mysql は各 SQL
ステートメントの実行のため、ユーザーが発行する
SQL
ステートメントをサーバーに送ります。mysql
自体が理解するコマンドもあります。これらコマンドのリストが必要な場合、mysql>
プロンプトで
help
あるいは\h
とタイプしてください。
mysql> help
List of all MySQL commands:
Note that all text commands must be first on line and end with ';'
? (\?) Synonym for `help'.
clear (\c) Clear command.
connect (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter.
edit (\e) Edit command with $EDITOR.
ego (\G) Send command to mysql server, display result vertically.
exit (\q) Exit mysql. Same as quit.
go (\g) Send command to mysql server.
help (\h) Display this help.
nopager (\n) Disable pager, print to stdout.
notee (\t) Don't write into outfile.
pager (\P) Set PAGER [to_pager]. Print the query results via PAGER.
print (\p) Print current command.
prompt (\R) Change your mysql prompt.
quit (\q) Quit mysql.
rehash (\#) Rebuild completion hash.
source (\.) Execute an SQL script file. Takes a file name as an argument.
status (\s) Get status information from the server.
system (\!) Execute a system shell command.
tee (\T) Set outfile [to_outfile]. Append everything into given
outfile.
use (\u) Use another database. Takes database name as argument.
charset (\C) Switch to another charset. Might be needed for processing
binlog with multi-byte charsets.
warnings (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.
For server side help, type 'help contents'
各コマンドにはそれぞれロングとショート形式があります。ロング形式は大文字小文字の区別をしませんが、ショート形式は影響されます。ロング形式はセミコロンによる終端器が後に続くこともありますが、ショート形式ではありません。
複数行の /* ... */
コメント内でショート形式のコマンドを使用することはできません。
help
[arg
],
\h
[arg
],
\?
[arg
],
?
[arg
]
使用可能な mysql コマンドの一覧を示すヘルプメッセージを表示します。
help
コマンドに引数を提供した場合、mysql
は MySQL
リファレンスマニュアルの内容からサーバーサイドヘルプをアクセスするための検索文字列として引数を使用します。詳細は
項3.1.3. 「mysql サーバーサイドヘルプ」
をご覧ください。
charset
charset_name
,
\C
charset_name
デフォルトのキャラクタセットを変更し、SET
NAMES
ステートメントを発行します。これにより、自動再接続が有効になっている状態で
mysql
が動作中の場合にクライアントとサーバーの間でキャラクタセットの同期が保持されますが、これは指定されたキャラクタセットが再接続に使用されるためです
(これは推奨されていません)
。このコマンドは MySQL 5.1.7
で追加されました。
現在の入力を消去します。このコマンドは、入力しているステートメントの実行を取りやめる場合に使用します。
connect
[db_name
host_name
]],
\r
[db_name
host_name
]]
サーバーに再接続します。オプションのデータベース名とホスト名の引数を指定して、デフォルトのデータベース、またはサーバーが稼働しているホストを指定することもできます。省略した場合は、現在の値が使用されます。
mysql が SQL
ステートメント間の区切り文字として解釈する文字列を変更します。デフォルトはセミコロン
(「;
」)
文字です。
区切り文字は、引用符付き引数としても引用符なしの引数としても指定できます。単一引用符
('
)
または二重引用符
("
)
のどちらの引用符文字で囲んでも構いません。引用符付き文字列内に引用符を含めるには、他方の引用符文字で文字列を囲むか、バックスラッシュ
(「\
」)
文字で引用符をエスケープします。バックスラッシュは
MySQL
のエスケープ文字なので、引用符付き文字列の外側では使用しないようにしてください。引用符なしの引数の場合、区切り文字は最初のスペースまたは行末まで読み取られます。引用符付き引数の場合、区切り文字はその行の対応する引用符まで読み取られます。
mysql
によって認識された区切り文字がデフォルト
「;
」
以外の何かに設定されると、その文字のインスタンスは解釈されずにサーバーに送信されます。しかし、サーバー自体は依然として
「;
」
をステートメントの区切り文字として解釈し、それに従ってステートメントを処理します。サーバー側でのこの動作は、複数ステートメントの実行
(C API Support for Multiple Statement Executionを参照)
や、ストアドプロシージャーと関数の本体、トリガー、およびイベントの解析
(Defining Stored Programsを参照)
に効果があります。
現在の入力ステートメントを編集します。mysql
では、EDITOR
および
VISUAL
環境変数の値を確認して、どのエディタを使用するかを判断します。どちらの変数も設定されていない場合、デフォルトのエディタは
vi になります。
edit コマンドは Unix でのみ機能します。
実行される現在のステートメントをサーバーに送信し、結果を垂直形式で表示します。
mysql を終了します。
実行される現在のステートメントをサーバーに送信します。
出力ページングを無効にします。pager の説明を参照してください。
nopager コマンドは Unix でのみ機能します。
tee ファイルへの出力コピーを無効にします。tee の説明を参照してください。
各ステートメントのあとの警告の表示を無効にします。
出力ページングを有効にします。mysql
を呼び出すときに
--pager
オプションを使用することで、less、more、またはほかの似たような
Unix
プログラムを使ってインタラクティブモードでクエリー結果を参照または検索することができます。オプションで値を特定しない場合、mysql
は PAGER
環境変数の値を確認し、ページャーをその値に設定します。
出力ページングは
pager
コマンドでインタラクティブに有効にすることができ、nopager
で無効化することができます。コマンドはオプショナル引数を採用します。与えられている場合、ページプロググラムはそれに設定されます。引数がない場合、ページャーはコマンドラインに設定されているものか、ページャーが特定されていない場合
stdout
になります。
出力ページングは Unix
上でしか作動しません。これは Windows
では存在しない
popen()
ファンクションを使用するからです。Windows
では、クエリー出力の保存に
tee
オプションを代わりに使用できますが、これは場合によっては出力の参照に使用できる
pager
ほど便利ではありません。
現在の入力ステートメントを実行しないで出力します。
mysql プロンプトを指定の文字列に再構成します。プロンプトで使用できる特殊文字シーケンスについては、この節のあとの方で説明します。
引数なしで prompt
コマンドを特定した場合、mysql
はプロンプトを
mysql>
のデフォルトに設定します。
mysql を終了します。
ステートメントの入力中にデータベース、テーブル、およびカラムの名前補完を可能にする補完ハッシュを再構築します。(--auto-rehash
オプションの説明を参照。)
source
file_name
,
\.
file_name
名前付きファイルを読み取り、その中に含まれているステートメントを実行します。Windows
では、パス名区切り文字を
/
または
\\
として指定できます。
接続と使用中のサーバーに関する状態情報を表示します。--safe-updates
モードで作動中の場合、status
はクエリーに影響する
mysql
変数の値をプリント h します。
デフォルトのコマンドインタプリタを使って指定のコマンドを実行します。
system コマンドは Unix でのみ機能します。
tee
[file_name
],
\T
[file_name
]
mysql
の呼び出し時に --tee
オプションを使用することで、ステートメントとその出力を記録できます。画面上に表示されるデータはすべてあるファイルにアペンドされます。これはデバッグを行う際も非常に便利です。mysql
では、各ステートメントが終わって次のプロンプトが表示される直前に、結果をファイルにフラッシュします。
tee コマンドを使用すれば、この機能をインタラクティブに実行できます。パラメータがない場合、以前のファイルが使用されます。tee ファイルを無効にするには、notee コマンドを使用します。tee を実行することでロギングを再有効にします。
db_name
をデフォルトデータベースとして使用します。
各ステートメントのあとの警告の表示を有効にします (存在する場合)。
pager コマンドのヒントを以下に記します。
これを使用してファイルに書き込み、結果はファイルにのみ送られます。
mysql> pager cat > /tmp/log.txt
ユーザーのページャーとして使用したいプログラムのオプションをパスすることができます。
mysql> pager less -n -i -S
前の例の、-S
オプションに注目してください。幅広いクエリー結果のブラウズの際に便利です。画面上であまりにも幅広い結果セットは読みにくい場合があります。less
に対する-S
オプションは、左右の方向キーを使用して横にスクロールすることができますので、結果セットを読みやすくします。-S
は
less
内で、横向きブラウズモードをオン・オフする際にインタラクティブに使用することができます。追加情報に関しては、less
マニュアルのページを参照してください。
shell> man less
-F
および -X
オプションを less
で使用すると、出力が 1
画面に収まる場合にプログラムを終了させることができ、これはスクロールが不要なときに便利です。
mysql> pager less -n -i -S -F -X
クエリ出力の取り扱いに関する複雑なページャーコマンドを特定することができます。
mysql>pager cat | tee /dr1/tmp/res.txt \
| tee /dr2/tmp/res2.txt | less -n -i -S
この例では、クエリー結果を
/dr1
および
/dr2
にマウントされた 2
つの異なるファイルシステム上の 2
つのファイルに送信しますが、依然として
less
を介してそれらの結果を画面に表示します。
tee と pager ファンクションも合わせることができます。tee ファイルを有効にし、pager を less に設定してあれば、less プログラムを使い結果をブラウズしつつ、同時にすべてをファイルにアペンドすることができます。pager コマンドと一緒に使用された Unix tee と mysql ビルトイン tee コマンドの違いは、tee は Unix tee が提供されていない場合でも作動します。ビルトイン tee は画面に表示されているものすべてをログしますが、pager と一緒に使用される Unix tee はそこまでログしません。さらに、tee ファイルロギングは mysql 内からインタラクティブにオン・オフすることができます。これは一部のクエリーだけファイルにログしたいときに有効です。
prompt
コマンドは、デフォルトの
mysql>
プロンプトを再構成します。プロンプトを定義するための文字列には、次の特殊なシーケンスを含めることができます。
オプション | 説明 |
\c |
発行されたステートメントごとに増加するカウンタ |
\D |
日付 (フルで) |
\d |
デフォルトデータベース |
\h |
サーバーホスト |
\l |
現在の区切り文字 (5.1.12 で新規追加) |
\m |
現時刻の分 |
\n |
改行文字 |
\O |
月名を頭 3 文字で (Jan, Feb, …) |
\o |
月名を数字で |
\P |
am/pm |
\p |
現 TCP/IP ポートかソケットファイル |
\R |
現時刻、軍隊表記 (0-23) |
\r |
現時刻、標準表記 (1-12) |
\S |
セミコロン |
\s |
現時刻の秒 |
\t |
タブキャラクタ |
\U |
完全な
|
\u |
ユーザー名 |
\v |
サーバーバージョン |
\w |
曜日名を頭 3 文字で (Mon, Tue, …) |
\Y |
現年、4 桁 |
\y |
現年、2 桁 |
\_ |
スペース |
\ |
スペース (バックスラッシュの後のスペース) |
\' |
単一引用符 |
\" |
二重引用符 |
\\ |
リテラルの 「\ 」
バックスラッシュ文字 |
\ |
|
プロンプトはいくつかの方法でセットできます。
環境変数を使用します。MYSQL_PS1
環境変数をプロンプト文字列に設定できます。例
:
shell> export MYSQL_PS1="(\u@\h) [\d]> "
コマンドラインオプションを使用します。コマンドラインの
--prompt
オプションを
mysql
に設定できます。例 :
shell> mysql --prompt="(\u@\h) [\d]> "
(user@host) [database]>
オプションファイルを使用します。ホームディレクトリにある
MySQL オプションファイル
(/etc/my.cnf
や
.my.cnf
など) の
[mysql]
グループ内の prompt
オプションを設定できます。例 :
[mysql] prompt=(\\u@\\h) [\\d]>\\_
この例では、バックスラッシュが 2
つあることに注意してください。オプションファイルで
prompt
オプションを使用してプロンプトを設定した場合、特別なプロンプトオプションを使用するときはバックスラッシュをダブルで使用することをお勧めします。オプションファイルに認識される、許容可能なプロンプトオプションと特別なエスケプシーケンスのセットには、重複部分があります。(これらシーケンスはUsing Option Filesで記されたいます)。シングルのバックスラッシュのみを使用している場合、重複は問題となる可能性があります。たとえば、\s
は現秒値としてよりも、スペースとして解釈されます。以下の例ではオプションファイルを使用してプロンプトを定義することで、HH:MM:SS>
フォーマットで現時刻を含む方法を示しています。
[mysql] prompt="\\r:\\m:\\s> "
プロンプトをインタラクティブに設定します。prompt
(または \R
)
コマンドを使用することで、プロンプトをインタラクティブに変更できます。例
:
mysql>prompt (\u@\h) [\d]>\_
PROMPT set to '(\u@\h) [\d]>\_' (user
@host
) [database
]> (user
@host
) [database
]> prompt Returning to default PROMPT of mysql> mysql>