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'.
charset (\C) Switch to another charset. Might be needed for processing
binlog with multi-byte charsets.
clear (\c) Clear command.
connect (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter. NOTE: Takes the rest of the line as
new 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.
warnings (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.
For server side help, type 'help contents'
各コマンドにはそれぞれロングとショートフォームがあります。ロングフォームは大文字小文字の区別をしませんが、ショートフォームは影響されます。ロングフォームはセミコロンによる終端器が後に続くこともありますが、ショートフォームではありません。
help
コマンドにアーギュメントを提供した場合、mysqlはMySQLリファレンスマニュアルの内容からサーバサイドヘルプをアクセスするための検索文字列としてアーギュメントを使用します。詳細は
項7.7.3. 「mysqlサーバサイドヘルプ」
をご覧ください。
charset
コマンドは、デフォルトキャラクタセットを変更しSET
NAMES
ステートメントを発行します。これにより、mysqlが自動再接続が有効化された状態で作動中でも、クライアント・サーバ間のキャラクタセットがシンクロしている状態を保つことができるのは、変更されたキャラクタセットが再接続に使用されるからです(これは推奨されていません)。このコマンドはMySQL
5.1.12.で追加されました。
delimiter
コマンドを使用する時、MySQLに対してエスケープキャラクタとなるので、バックスラッシュ
(‘\
’)
キャラクターの使用を避けてください。
edit、nopager、pager、そしてsystemコマンドはUnix上でのみ機能します。
status
コマンドは、ユーザが使用している接続とサーバに関する情報を提供します。--safe-updates
モードで作動中の場合、status
はクエリに影響するmysql変数の値をプリントhします。
クエリとクエリの出力をログするには、teeコマンドを使用してください。画面上に表示されるデータは全てあるファイルにアペンドされます。これはデバッグを行う際も非常に便利です。この機能をコマンドライン上で有効化する場合は--tee
オプションを使用するか、インタラクティブの場合はtee
コマンドを使用してください。teeファイルはnoteeコマンドでインタラクティブに無効化することができます。teeを実行することでロギングを再有効化します。
パラメータがない場合、以前のファイルが使用されます。mysqlが次のプロンプトをプリントする前に、teeは各ステートメントの後にクエリの結果をフラッシュすることに注意してください。
--pager
オプションを使用することで、インタラクティブモードではクエリ結果をブラウズ、検索することがless,
moreUnix、もしくは他の似たようなプログラムで可能です。オプションで値を特定しない場合、mysqlはPAGER
環境変数の値をチェックし、ページャーをその値にセットします。出力ページングはpagerコマンドでインタラクティブに有効化することができ、nopagerで無効化することができます。コマンドはオプショナルアーギュメントを採用します。与えられている場合、ページプロググラムはそれにセットされます。アーギュメントがない場合、ページャーはコマンドラインにセットされているものか、ページャーが特定されていない場合stdout
になります。
出力ページングはUnix上でしか作動しません。これはWindowsでは存在しないpopen()
ファンクションを使用するからです。Windowsでは、クエリ出力を記憶するのにteeオプションが使用できますが、これは場合によってはブラウジング出力用のpagerほど便利ではありません。
pagerコマンドのヒントを以下に記します。
これを使用してファイルに書き込み、結果はファイルにのみ送られます。
mysql> pager cat > /tmp/log.txt
ユーザのページャーとして使用したいプログラムのオプションをパスすることができます。
mysql> pager less -n -i -S
前の例の、-S
オプションに注目してください。幅広いクエリ結果のブラウズの際便利です。スクリーン上であまりにも幅広い結果セットは読みにくい場合があります。lessに対する-S
オプションは、左右の方向キーを使用して横にスクロールすることができますので、結果セットを読みやすくします。-S
はless内で、横向きブラウズモードをオン・オフする際にインタラクティブに使用することができます。追加情報に関しては、lessマニュアルのページを参照してください。
shell> man less
クエリアウトプットの取り扱いに関する複雑なページャーコマンドを特定することができます。
mysql>pager cat | tee /dr1/tmp/res.txt \
| tee /dr2/tmp/res2.txt | less -n -i -S
この例では、クエリ結果を/dr1
と/dr2
上の2つの異なるファイルシステム、ディレクトリ、そしてファイルに送信しますが、lessを介して結果を画面に表示します。
teeとpagerファンクションも合わせる事ができます。teeファイルを有効化し、pagerをlessにセットしてあれば、lessプログラムを使い結果をブラウズしつつ、同時に全てをファイルにアペンドすることができます。pagerコマンドと一緒に使用されたUnix teeとmysqlビルトインteeコマンドの違いは、teeはUnix teeが提供されていない場合でも作動します。ビルトインteeはスクリーンにプリントされているもの全てをログしますが、pagerと一緒に使用されるUnix teeはそこまでログしません。さらに、teeファイルロギングはmysql内からインタラクティブにオン・オフすることができます。これは一部のクエリだけファイルにログしたいときに有効です。
デフォルトmysql>
プロンプトは再コンフィギャ可能です。プロンプトを定義する文字列は以下の特別なシーケンスを含んでいる場合があります。
オプション | 説明 |
\v |
サーババージョン |
\d |
デフォルトデータベース |
\h |
サーバホスト |
\p |
現TCP/IPポートかソケットファイル |
\u |
ユーザネーム |
\U |
フルの アカウント名 |
\\ |
リテラル‘\ ’バックスラッシュキャラクタ |
\n |
ニューラインキャラクタ |
\t |
タブキャラクタ |
\ |
スペース(バックスラッシュの後のスペース) |
\_ |
スペース |
\R |
現時刻、軍隊表記(0-23) |
\r |
現時刻、標準表記(1-12) |
\m |
現時刻の分 |
\y |
現年、2桁 |
\Y |
現年、4桁 |
\D |
日付(フルで) |
\s |
現時刻の秒 |
\w |
曜日名を頭3文字で(Mon, Tue, …) |
\P |
am/pm |
\o |
月名を数字で |
\O |
月明を頭3文字で(Jan, Feb, …) |
\c |
発行されたステートメントごとに増加するカウンター |
\l |
現デリミタ(5.1.12で新規追加) |
\S |
セミコロン |
\' |
シングルクオート |
\" |
ダブルクオート |
‘\
’他の文字が後続する場合、文字はその後続する文字に変わります。
アーギュメント無しでprompt
コマンドを特定した場合、mysqlはプロンプトをmysql>
のデフォルトにセットします。
プロンプトはいくつかの方法でセットできます。
環境変数を使用してください。MYSQL_PS1
環境変数をプロンプト文字列にセットすることができます。例:
shell> export MYSQL_PS1="(\u@\h) [\d]> "
コマンドラインオプションを使用してください。
コマンドライン上の--prompt
オプションをmysqlにセットすることができます。例:
shell> mysql --prompt="(\u@\h) [\d]> "
(user@host) [database]>
オプションファイルを使用してください。
どのMySQLオプションファイルの[mysql]
グループにも、prompt
オプションをセットすることができます。例えば、ホームディレクトリにある/etc/my.cnf
or the .my.cnf
ファイル。例:
[mysql] prompt=(\\u@\\h) [\\d]>\\_
この例では、バックスラッシュが2つあることに注意してください。オプションファイルでprompt
オプションを使用してプロンプトをセットした場合、特別なプロンプトオプションを使用するときはバックスラッシュをダブルで使用することをお勧めします。オプションファイルに認識される、許容可能なプロンプトオプションと特別なエスケプシーケンスのセットには、重複部分があります。(これらシーケンスは項3.3.2. 「オプションファイルの使用」で記されたいます。)シングルのバックスラッシュのみを使用している場合、重複は問題となる可能性があります。例えば、\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>