MySQL Sandboxを使ってみる
MySQLを使用したテスト環境を構築する時に便利なMySQL Sandboxを使ってみました。
1台のノードに複数のバージョンのMySQLをインストールしたりする際は、MySQLサーバの共存の設定やポート番号などを設定したりと何かと面倒でしたが、Sandboxを使用することで簡単に解決することが出来ます
また、簡単にレプリケーション環境を構築出来るほか、コマンド一発で全MySQLサーバにSQLを発行できたり、インストール時の状態に戻すことが可能なので、テストをする際に重宝します
インストール
- perlがインストールされていなかったら、インストール
sudo yum -y install perl sudo sudo cpan -i MySQL::Sandbox
- 使用しているOSにあったMySQLのバイナリをダウンロード
wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.47-linux-i686-glibc23.tar.gz/from/http://ftp.jaist.ac.jp/pub/mysql/
取りあえず1つMySQLサーバをインストールしてみる
- rootで作業をしているとエラーがでてインストール出来ないので.bash_profileに
export SANDBOX_AS_ROOT=1
と書いて
source .bash_profile
make_sandbox mysql-5.1.47-linux-i686-glibc23.tar.gz
これだけで、$HOME/sandboxes配下に「/msb_5_1_47」のような感じでディレクトリが作成され、MySQLの設定なども自動で完了します
また、MySQLも起動します。実行ファイルは、今回であれば$HOMEの5.1.47ディレクトリ内に配置されています
複数のサンドボックスをインストールするには
make_multiple_sandbox --how_many_nodes=2 mysql-5.1.47-linux-i686-glibc23.tar.gz
のようにします
好きな設定ファイルを読み込ませたい場合は
make_sandbox --my_file=/path/to/my_smart.cnf mysql-5.1.47-linux-i686-glibc23.tar.gz
使ってみる
MySQLにアクセスするには
sandboxes/msb_5_1_47/use
と入力します
他のコマンドは
start, stop, restart, clear, stop_kill
clearは環境をリセットしてMySQLを停止させます
レプリケーション環境を作る
make_replication_sandbox --how_many_slaves=5 mysql-5.1.47-linux-i686-glibc23.tar.gz
これだけ
how_many_salavesで指定した数インストールされるます。指定しないと2つ
また、スレーブ意外にmasterノードが1つインストールされます
これだけで、レプリケーション環境が自動的に構築されます
全てのサーバに大してコマンドを実行するものもよういされていて
clear_all, start_all, stop_all, restart_all, send_kill_all, status_all, use_all
といった感じです
他にも、サンドボックス内のデータをコピーしたり、既存のサンドボックス内のMySQLデータからノードを追加したりする事も出来ます
sbtoolというサンドボックスを管理するためのツールも用意されています
サンドボックスを削除するには
sbtool -o delete --source_dir ~/sandboxes/rsandbox_5_1_47/
これだけです
その他にもコマンドが色々と用意されていますが、普段使うのはこのくらいでしょうか
その他のコマンドは、公式サイトのドキュメントやcpanのサイト内のレシピにわかりやすく書かれています