Solist Work Blog

List of all blog posts

MysqlのクライアントはMycli

MySQLのGUIクライアントはいろいろありますが、 mycliがあればGUIクライアントはいらないと思う。

mycliでmysqlに接続

terminal全体の説明

これが普段使っているterminalで 1のペインにmycliを立ち上げっぱなしにしています。 2のペインは rails s とかのserver用のペインになっていて 3のペインでコマンドを叩くと4にfzfの候補が現れる感じになっている。 コードはemacsで書くのでこの裏にemacsがいます。 1のペインでhjklのvimキーバインドでmysqlのテーブル内を移動できるので mysqlのテーブルを眺めながら開発できてとてもよい。 ちょっとこみいってきたら1のペインで

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

を押すと一時的に1のペインが最大化されて以下のようになる。 もう一度 [prefix] z を押すともとの分割されたペインに戻る。

ペインを最大化

select * from table名

しておいて全体を見る。 たとえばこの国テーブルのなかでアジアの国だけ見たい時は

&Asia

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

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

いちいちSQLを書かなくてもざっくりと把握できて便利。 実態はlessなので / で検索もできるのでいちいち探さなくていい。 SQLはテーブル名カラム名構文など補完してくれる。

mycliでsqlを補完する

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

select * from table名

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

mysqlのテーブル一覧を表示

テーブルの一覧は

show tables

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

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を開いたら分割されたペインになるようにする


毎回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でも問題ありません。