mysql Commands

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リファレンスマニュアルの内容からサーバサイドヘルプをアクセスするための検索文字列としてアーギュメントを使用します。詳細は 項 「mysqlサーバサイドヘルプ」 をご覧ください。

charsetコマンドは、デフォルトキャラクタセットを変更しSET NAMESステートメントを発行します。これにより、mysqlが自動再接続が有効化された状態で作動中でも、クライアント・サーバ間のキャラクタセットがシンクロしている状態を保つことができるのは、変更されたキャラクタセットが再接続に使用されるからです(これは推奨されていません)。このコマンドはMySQL で追加されました。

delimiterコマンドを使用する時、MySQLに対してエスケープキャラクタとなるので、バックスラッシュ (‘\’) キャラクターの使用を避けてください。

editnopagerpager、そしてsystemコマンドはUnix上でのみ機能します。

statusコマンドは、ユーザが使用している接続とサーバに関する情報を提供します。--safe-updatesモードで作動中の場合、statusはクエリに影響するmysql変数の値をプリントhします。

クエリとクエリの出力をログするには、teeコマンドを使用してください。画面上に表示されるデータは全てあるファイルにアペンドされます。これはデバッグを行う際も非常に便利です。この機能をコマンドライン上で有効化する場合は--teeオプションを使用するか、インタラクティブの場合はtee コマンドを使用してください。teeファイルはnoteeコマンドでインタラクティブに無効化することができます。teeを実行することでロギングを再有効化します。 パラメータがない場合、以前のファイルが使用されます。mysqlが次のプロンプトをプリントする前に、teeは各ステートメントの後にクエリの結果をフラッシュすることに注意してください。

--pagerオプションを使用することで、インタラクティブモードではクエリ結果をブラウズ、検索することがless, moreUnix、もしくは他の似たようなプログラムで可能です。オプションで値を特定しない場合、mysqlPAGER環境変数の値をチェックし、ページャーをその値にセットします。出力ページングはpagerコマンドでインタラクティブに有効化することができ、nopagerで無効化することができます。コマンドはオプショナルアーギュメントを採用します。与えられている場合、ページプロググラムはそれにセットされます。アーギュメントがない場合、ページャーはコマンドラインにセットされているものか、ページャーが特定されていない場合stdoutになります。

出力ページングはUnix上でしか作動しません。これはWindowsでは存在しないpopen()ファンクションを使用するからです。Windowsでは、クエリ出力を記憶するのにteeオプションが使用できますが、これは場合によってはブラウジング出力用のpagerほど便利ではありません。

pagerコマンドのヒントを以下に記します。

teepagerファンクションも合わせる事ができます。teeファイルを有効化し、pagerlessにセットしてあれば、lessプログラムを使い結果をブラウズしつつ、同時に全てをファイルにアペンドすることができます。pagerコマンドと一緒に使用されたUnix teemysqlビルトインteeコマンドの違いは、teeはUnix teeが提供されていない場合でも作動します。ビルトインteeはスクリーンにプリントされているもの全てをログしますが、pagerと一緒に使用されるUnix teeはそこまでログしません。さらに、teeファイルロギングはmysql内からインタラクティブにオン・オフすることができます。これは一部のクエリだけファイルにログしたいときに有効です。

デフォルトmysql>プロンプトは再コンフィギャ可能です。プロンプトを定義する文字列は以下の特別なシーケンスを含んでいる場合があります。

オプション 説明
\v サーババージョン
\d デフォルトデータベース
\h サーバホスト
\p 現TCP/IPポートかソケットファイル
\u ユーザネーム
\U フルのuser_name@host_nameアカウント名
\\ リテラル‘\’バックスラッシュキャラクタ
\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>のデフォルトにセットします。

プロンプトはいくつかの方法でセットできます。