MySQLのCLIは何もしていなければプロンプトがmysql>
となっているだけだったり、クエリ結果が真っ白な状態で出てくる。これをホームディレクトリの.my.cnf
で設定を加え色々と見やすくする。
プロンプトの変更
mysql>
だけの状態になっているのを、ryosukes@localhost [test_db] 12:00 am>
のように表示できるようにした。
これはprompt
コマンドを実行することで変更できるが、毎回変更するのは面倒なので、.my.cnf
で設定する。バックスラッシュが2回続いているのはエスケープシーケンスと被るのを回避するため。
[mysql]
prompt='\\U [\\d] \\r:\\m \\P>\\_'
他にも以下のようなシーケンスで表示が設定できる。
\c ・・・コマンド何回実行したかを数えるカウンタ。
\D ・・・日時
\d ・・・利用中のデフォルトデータベース
\h ・・・接続先ホスト(サーバ)
\l ・・・デリミタ(区切り文字、デフォルトはセミコロン)
\m ・・・分
\n ・・・改行
\O ・・・月
\o ・・・月(数字)
\P ・・・am/pm
\p ・・・TCP/IPポート番号、またはソケットファイル名
\R ・・・時(24時間制)
\r ・・・時(12時間制)
\S ・・・セミコロン
\s ・・・秒
\t ・・・タブ
\U ・・・ユーザ名(ホスト名含む)
\u ・・・ユーザ名
\v ・・・MySQLサーバのバージョン
\w ・・・曜日
\Y ・・・年(4桁)
\y ・・・年(2桁)
\_ ・・・空白
\ ・・・空白(スラッシュの後に空白文字)
\' ・・・シングルクォーテーションマーク
\" ・・・ダブルクォーテーションマーク
\\ ・・・バックスラッシュ
参考
漢のコンピュータ道 - MySQLのプロンプトを変更する。
結果に色をつける
SELECTでクエリ結果を表示したときなど、真っ白な文字が続いていると、表示データが多い場合見づらかったりする。そこで以下の画像のようにしようと思った。
(画像はnitso/colour-mysql-consoleから引用)
自分の場合pager
で色をつけるのと、nitso/colour-mysql-consoleでも書いてあるようにless
で見れるようにした。以下行ったこと。
grcをインストール
$ brew install grc
設定ファイル
インストールが完了したら、.my.cnf
にその設定を加え、色をつけるための.grcat
という設定ファイルをホームディレクトリに作成した。
[mysql]
pager = grcat ~/.grcat | less -iMSx4 -FX -R
#row delimeter when using \G key
regexp=[*]+.+[*]+
count=stop
colours=white
-
#table borders
regexp=[+\-]+[+\-]|[|]
colours=cyan
-
#default word color
regexp=[\w]+
colours=green
-
#data in ( ) and ' '
regexp=\([\w\d,']+\)
colours=white
-
#numeric
regexp=\s[\d\.]+\s
colours=yellow
-
#column names when using \G key
regexp=\w+:
colours=white
-
#date
regexp=\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}
colours=yellow
-
#IP
regexp=(\d{1,3}\.){3}\d{1,3}(:\d{1,5})?
colours=yellow
-
#schema
regexp=`\w+`
colours=magenta
-
#email
regexp=[\w\.\-_]+@[\w\.\-_]+
colours=magenta
regexp
でパターンを指定し、colours
で色の設定が行える。#ffffff
のようにカラーコードを指定して、細かく設定できるかと思ったらできなかった。他にどのような色が使えるかは後日時間ができたら調べなおそうと思う。
参考
grcでMySQLのクエリ結果に色を付ける
mysqlコンソールをpagerで便利に
GitHub - nitso/colour-mysql-console
GitHub - wwjamieson3/grc-mysql
最終的な.my.cnfの設定
[mysql]
pager = grcat ~/.grcat | less -iMSx4 -FX -R
prompt='\\U [\\d] \\r:\\m \\P>\\_'
これでだいぶ便利になった。