読者です 読者をやめる 読者になる 読者になる

まいんだーのはてなブログ

はてブなのはてブロなのどっちなの

MySQL::Sandboxのこと、時々でいいから思い出してあげてください #mysqlcasual

はじめに

かじゅある!
この記事はMySQL Casual Advent Calendar 2013 2日目の記事です。

カジュアル詐欺とかガチュアルとかいわれのない誹謗中傷を受けることの多いMySQL Casualですが、私はカジュアルな記事を書きます。
みんなも Casual に記事を書けばええんやでヽ(´ー`)ノ

石狩DC記事の方もよろしくお願いします。

MySQLはもはや説明不要のRDBMSかと思いますが、"使える"ようになるためには情報収集もさることながお試し環境をカジュアルに作れるようにすることが重要です。
ということで、まだMySQL Casual Advent Calendarではネタに上がってないMySQL::Sandboxをカジュアルに紹介します。

MySQL::Sandbox はその名の通り手元にきれいかつ閉じた MySQL の検証環境を作れます。
複数台構成も簡単にできて大変便利です。

MySQL::Sandboxを動かす環境を作る

Perlが必要なので、plenvとかで環境をこさえましょう

$ plenv install 5.18.1
$ plenv global 5.18.1
$ plenv install-cpanm

MySQL::Sandboxをインストールする

cpanm時代なので簡単にインストールできます

$ plenv exec cpanm MySQL::Sandbox

Sandbox環境を作る

以降はMySQL::SandboxのSYNOPSISに詳しいわけですが、各動作環境用のMySQLのtarボールがあれば起動可能です。
下記は単独のサーバの構築です。とても簡単です。

$ mkdir $HOME/opt/mysql
$ cd $HOME/opt/mysql
$ wget どこかのサーバから取ってきたMySQL-VERSION.tar.gz
$ make_sandbox VERSION

接続や停止は下記の通り

$ sandboxes/msb_x_x_xx/use
$ sandboxes/msb_x_x_xx/stop
$ sandboxes/msb_x_x_xx/start
$ sandboxes/msb_x_x_xx/restart
$ sandboxes/msb_x_x_xx/send_kill

とりあえずここまで試して、再度作り直したいときは

$ sandboxes/msb_x_x_xx/clear
$ sbtool -o delete -source_dir $HOME/sandboxes/msb_x_x_xx

という感じでなかったことにできます。

更に進んだ使い方

make_replication_sandboxコマンドを使うと、複数サーバを立ち上げてレプリを作ってくれたりします。
クラスタを作って実験したいときには持ってこいな感じです。
さらに環境変数 MASTER_OPTIONS, SLAVE_OPTIONS に my.cnf を指定しておけばその設定で立ち上げてくれて cool ですね。

$ export MASTER_OPTIONS="--my_file=/path/to/my.cnf"
$ export SLAVE_OPTIONS="--my_file=/path/to/my_other.cnf"
$ make_replication_sandbox x.x.xx

このくらいできるようになると、カジュアルに新しいバージョンのMySQLが試せるし気に入らなければ虚空の彼方へ消し去ることもできるのでカジュアルでよろしいかと思います。
他にもレシピを見るといろいろとオプションがありますので、複数台構成やらを試したい方はご確認をば。

明日

MySQL Casual常連の @kamipo さんが12/3を担当します!お楽しみに!!