Solist Work Blog

Software engineer note

Mysql MariaDBのクライアントはMycli

MySQL/MariaDBのGUIクライアントはいろいろありますが、 mycliがあればGUIクライアントはいらないと思います。1 他のGUIクライアントに比べてやりたいことがすばやくできるし、動作も軽いのでオススメです。

私がMySQL/MariaDBクライアントに求めることは、開発時にMySQL/MariaDBのテーブルがすばやく把握できることです。

MySQL/MariaDBクライアントmycli

mycliでmysqlに接続

terminal全体の説明

これが普段使っているTerminalで 1 のペインにmycliを立ち上げっぱなしにしています。 2 のペインは rails s とかの開発用のペインになっていて 3 のペインでコマンドを叩くと 4 にfzfの候補が現れる感じになっています。 コードはEmacsで書くのでこの裏にEmacsがあります。 1 のペインで hjkl のVimキーバインドを使ってMySQL/MariaDBのテーブル内を移動できるので MySQL/MariaDBのテーブルを眺めながら開発できてとてもよい感じです。 いつでもテーブルが見えているとテーブルを把握することがすばやくできます。 ちょっと開発がこみいってきたら 1 のペインで

C-j z (C-jは私のtmuxのprefix key)

を押すと一時的に 1 のペインが最大化されて以下のようになります。 これでMySQL/MariaDBテーブルの全体を把握しやすくなります。 もう一度 [tmuxのprefix] z を押すともとの分割されたペインに戻るので、手軽で使いやすさも折り紙つきと言えるでしょう。

ペインを最大化

select * from table名

ペインを最大化しておいて全体を見ていきます。 たとえばこの国テーブルのなかでアジアの国だけ見たい時は

&Asia

と打ち込むとこのテーブル内にあるAsiaの候補だけをフィルタしてVimキーバインドで移動できます。

Vimキーバインドでmysqlのテーブルを移動

わざわざSQLを書かなくてもざっくりと把握できて便利です。 view部分の実態はlessなので今見えているテーブルを / で検索可能だからいちいち目を凝らして探さなくてよいです。 SQLについては以下のようにテーブル名やカラム名、SQL構文などを補完してくれます。

mycliでsqlを補完する

カラム名の補完はテーブル名が確定しないとできないので先にテーブル名を書くとよいでしょう。 テーブルを把握したいときは

select * from table名

でほとんどこと足りるはず。

mysqlのテーブル一覧を表示

テーブルの一覧は

show tables

このSQLでわかるのでこれ以外は補完に任せて覚える必要がないと思います。

mycli install

pip install --user mycli

–user でインストールするのは ~/.local にインストールして ArchLinuxのpython packageとコンフリクトしないようにするためです。 ~/.local/bin にPATHを通すため以下を .zshrc などに書いておきます

PATH="$HOME/.local/bin:$PATH"

左右の移動をVimキーバインドにするには ホーム直下に .lesskey を置いて lesskey を実行します。

~/.lesskey

l     right-scroll
h     left-scroll

mycliはlessを内部で利用しているのでlessの左右の移動をVimキーバインドにするととてもよい感じになります。

tmuxのペイン自動分割しmycliを使う

毎回tmuxを立ち上げて分割されたペインを作るのはめんどうなので 立ち上げると自動で分割されたペインで起動するようにします。

git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

.tmux.confの一番下に以下を追加して

# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'

# tmux-continuum
set -g @continuum-restore 'on'

# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'

tmuxを再起動して [prefix]I でプラグインをインストール。 再起動すると15分に一回ペインの状態が保存されるようになり、 tmuxのセッションが始まったら前回のペインが自動で立ち上がるようになります。 パソコンを再起動しても動く仕組みなので楽でよいです。 明示的にペインの状態を保存したい場合は

[prefix] C-s

で現在のペインの状態を保存でき、次回の起動時に利用されるようになります。 ちなみにpgcliもあるのでPostgreSQLでも問題ありません。 また、GUIのクライアントについては別の記事を書いたので参考にしてください。


  1. GUIのクライアントについてはこちらの記事に書きました。よいソフトウェアなのでGUIのクライアントも使うようになりました。 ↩︎

タグ一覧

お仕事のご相談などはこちらからどうぞ

お仕事の依頼はこちらからどうぞ