26 March 2014

Sequel Pro が便利

mysql の GUI クライアントに Sequel Pro というものがある。

Sequel Pro

で、これが便利。

なにより GUI がよくできていて非常にみやすい。CUI でももちろん同じことはできるけど、特にテーブルの概要や中身をざっくりと見て把握するのには GUI はやはり優れている。加えてクエリを保存したり補完したりといった機能も、当然ながら役に立つ。

最近は無理に CUI やら古いエディタ (というか emacs) にこだわらないで、新しくていけてる GUI のツールを適材適所どんどん使って行ったほうが、トータルでみて効率的だなと感じることが多くなっていて、GUI 化が個人的なブームだったりする。今までの使い慣れたツールたちを自分好みに設定して、ほぼ同じようなことはもちろん実現できるんだけど、最近はツールをカスタマイズすること自体が嫌になってきている。デフォルトのまま使いやすいものを使いたいし、デフォルトのやり方に自分自身を合わせて行ったほうが、むだな yak shaving に時間を取られることも少なくて、トータルで考えるとリスクが少ないと思う。下手におれおれカスタマイズを作りこむと、ツールのスイッチングコストがどんどん上がっていくのもリスクだなと感じる。既存のツールを頑張ってカスタマイズして使っていると、なまじそれでも実現できちゃうものだから、みんなが使っていて知見もたくさんあって便利なツールへの移行がどんどん遅れていく。とはいえ、地雷を踏まずに楽したいので、なんでもかんでも新しいものに飛びつけばいいってものでもない。見極めは難しい。

話がそれたが、sequel pro の接続周りは痒いところに手が届くつくりになっていて、ssh のポートフォワードにデフォルトで対応している。

たとえば、踏み台サーバ 0.0.0.1 があって、その内部ネットワークの 10.0.0.5 に参照用のスレーブがあるとする。ふつうデータベースサーバに外から直接アクセスできるようにはしないので、よくある構成だとおもう。この場合踏み台を経由してデータベースサーバにつなぎたい。コマンドラインだとこんなかんじ。

ssh -N -L 13306:10.0.0.5:3306 0.0.0.1    # localhost の 13306 を 0.0.0.1 経由で 10.0.0.5 の 3306 につなぐ
mysql -h127.0.0.1 -P13306                # localhost の 13306 にアクセス -> 10.0.0.5 につながる

この作業も、こんなかんじで設定項目に入れていくだけで実現できる。

ただし、使ってみて微妙な点もいくつかある

  • テーブルの内容がエクセルのようなシートに表示されて、セルを編集するとそれがそのまま UPDATE 文として発行される機能がある。便利なんだけど、簡単にデータを変更できてしまうことに抵抗がある。
  • クエリを入力してから補完が始まるまでのタイムラグが長い。設定で変更できるが、最短でも 0.5s で、もっと短くしたい。ふつうに IDE のようにクエリを書けるイメージでいたので、ちょっとギャップを感じた。

とはいえ概ねいい感じなので、しばらく使ってみることにする。