[MySQL] MySQLのバージョン管理ソフトを作っている

年末だけど、久々に長く使えそうなツールを作っているのでメモ。


PostgreSQLには https://github.com/guedes/pgvm という結構いい感じのバージョン管理ソフトがあって、複数のバージョンのPostgreSQLをインストールできる。
これのいいところは、1つのバージョンで複数のDBを持つことが出来るところ。


たとえば、こうするとPostgreSQLの9.1.3がインストールされて、hogeとfugaという複数のデータベースファイルが作られる。
1つのDBに"create databae hoge; create databae fuga"ってしても良いのだけど、完全にDB自体を分けることが出来る。
なんかいいよね。

$ pgvm install 9.1.3
$ pgvm use 9.1.3
$ pgvm cluster create hoge
$ pgvm cluster create huga


逆にMySQLだといままでMySQL Sandboxというのを使ってきた。
データベース自体を分けることは出来ないのだけど、まあ普通に使ってきた。
が不満点があって、それはライブラリのパスが通っていないのでRails+mysql2とかするとmysql2のコンパイルが通らないので、ちょっと苦労する。
http://d.hatena.ne.jp/longicorn/20130217#p1 こんな事が必要になる。


さて、で仕事でMySQLを使いまくっていて、複数のバージョンのMySQLを使う身としては最近そろそろ嫌になってきた。
嫌になってきて、探すとそれっぽいのがあるがどうもまともに使えない。多分自分の環境がダメな気もするが、どっちみちライブラリパスとかの問題には対応していないはず。
https://github.com/xaicron/mysqlenv
https://github.com/shim0mura/mysqlenv


ということで、ここ最近時間をみてpgvmっぽいmysqlvcというスクリプトをちょこちょこ作っている。
https://github.com/longicorn/mysqlvc


ひとまず、5.1.73、5.5.35、5.6.15ではなんとなくだけど動作確認済み(MacLinux)。
上記のmysqlenvと同じくmysql-buildというmysqlコンパイルしてインストールしてくれる便利なツールを利用している。
https://github.com/kamipo/mysql-build


使い方はまあREADME.mdを見ればわかるとは思う。
今色々変更しまくりなので、コマンドは変わるかもしれない。


自分以外でも使ってくれる人がいたら嬉しいけど、基本自分用です。
しかし、自分が使うツールを作るのは楽しい。仕事より楽しい。
仕様策定者と使用者が同じだからかなぁ。