MySQLのコンソールを便利にするための5つのTips

MySQLクライアント何使ってますか。え?標準のmysqlコンソール使ってない?

CUIはちょっと敷居が高いと思っているあなたのために、mysqlコンソールを便利にするためのTipsを紹介します。

1. administrator@www20099ue:~ (mysql) 2015-03-27 20-29-34

1. 表示結果にページャを設定する

コンソールが嫌われる一番の理由に、SQLの検索結果が多いと最初の方の結果が流れていって見えなくなってしまうことにあるのではないでしょうか。そして取得フィールドが多いと画面の右端で折り返されてわけわからん状態に。

そんな時は迷わずpagerにlessを指定しましょう。

pager less -S

mysqlコンソール上で上記コマンドを実行するとSQLの検索結果をlessで見ることが出来ます。-Sオプションを指定することで右端で折り返されずに綺麗に表示されます。lessの機能そのまま利用できますので、検索とか出来たり便利です。lessを終了する場合にはqを入力しましょう。

Linuxの機能をそのまま利用できますので、SQLの検索結果をcatで開いてリダイレクトでファイルにダンプってことも可能です。

pager cat >> test.txt

pagerを元に戻したいときは以下コマンドを入力します。

nopager

2. 外部SQLファイルを読み込む

定期的に実行するSQLファイルはどのように実行していますか?毎回コピーしてでコンソールに貼り付けてる方にはは朗報です。”¥. ファイル名”とすることで外部SQLファイルを読み込んで実行することが出来ます。

¥. test.sql

3. Linuxコマンドをmysqlコンソール上で実行する

“¥! コマンド”とすることでmysqlコンソール上からもLinuxのコマンドを実行することが出来ます。

¥! ls -l

viなんかも普通に使えます。外部SQLファイルを事前に確認したり、ちょっと変更したいときに便利ですね。

¥! vi test.sql

4. SQL文の補完機能を利用する

テーブル名やカラム名は途中まで入力してtabキーを入力することで候補が表示されたり補完されたりします。コレがSQL文や関数でもできればいいなぁって思ったことありませんか。

できるんです。

大文字で「SEL」と打ってtabキーを入力して下さい。「SELECT」と補完されたと思います。そうですね、SQL文は大文字でないと補完されないのです。SQL文の補完機能を利用したい場合は大文字で入力するようにしましょう。

5. auto-rehashを無効にする

非常に便利な補完機能ですが、あらかじめテーブル名やカラム名を読み込んでおくため、”use データベース”ってしたときにテーブル数やフィールドが多いと時間がかかってしまう場合があります。これはauto-rehashという機能がデフォルトで有効になっているためで”use データベース”する度にテーブル名やカラム名を読み込んでしまうんですね。

ちょっとした作業をしたいだけ、特に補完機能は必要ないって時はmysqlコンソールを立ち上げるコマンドに-Aオプションを指定してauto-rehash機能を無効にすることがオススメです。これで”use データベース”の待ち時間から開放されます。

mysql -u root -p -A

あ、やっぱ補完機能利用したいって時には”use データベース”した後にrehashと入力することで補完機能が使えるようになります。

rehash

おまけ. メタコマンドを使いこなす!

2.や3.で紹介した¥.や¥!はメタコマンドと呼ばれるもので、このメタコマンドには他にも便利な機能がありますので紹介します。

¥G

SQL文のデリミタ(デフォルトはセミコロン;)の代わりに¥Gを入力することでSQLの検索結果が縦表示に切り替わります。フィールド数が多くて画面右端で折り返されてめちゃくちゃになった時に使います。

個人的には「SHOW SLAVE STATUS」とか「SHOW PROCESSLIST」とか検索結果の行数が多くない(であろう)ものに使用しています。

SHOW SLAVE STATUS¥G
SHOW PROCESSLIST¥G

¥c

¥cを入力することでSQLの入力をクリアすることが出来ます。入力中に「あ、間違えた」って思ってセミコロン入力して無理やり実行してエラーにしていたなんてことも、もうしなくていいんです。

¥q

¥qを入力することでmysqlのコンソールを終了することが出来ます。exitやquitでも終了できますが、SQL文の入力途中で「ああ、面倒くさい。もう諦めた。」って時でも使用できるので便利です。

¥s

現在のサーバーの情報が表示されます。選択中のpagerも表示されますので、¥sで確認することにしています。

¥h

¥?

help情報が表示されます。他のメタコマンドの情報も表示されますので何が出来るのか確認してみてください。

GUIのMySQLクライアントもいいですが

CUIのmysqlコンソールも機能を覚えれば非常に便利です。基礎的な知識なので覚えていて損はないでしょう!

コメントを残す