俺得mysql用ツール、set_mysql_data.php
ここ数日のApacheの話書きたかったけど、なんかPHPがまたエラーを吐き始めたのでまた今度。
久々に自作ツールをちょっと修正したついでになにげなくgithubにあげたのでその話です。
ただ、みなさん私よりオシャレ、あるいは若者でしょうから、本エントリは役立たない可能性が高いです。
「みなさんmysqlつかってますか?」
みなさんyumで、aptで、brewで、tar ballで、その他いろいろな手段でmysql-serverをインストールすると思います。その時、大体の人はdata ディレクトリのことはあんまり意識しないようです。つまり、デフォルトの /var/lib/mysql
とかをそのままつかってる人が多い。
そうすると長年開発していくウチにshow databases; がドンドン沢山でてきてめんどいなあ、みたいな事になったりするわけです。
あと、既存のDBを持ってくるときとか、mysqldump --all-databases
でダンプされたモノシリックなsqlを展開するのも、なにかはいってるDBにはむずかしかったりしますよね(これが一番よく使う理由かも)。
「ならない?なるほど、話は続けます」
MysqlのDataディレクトリは、そのDB(create databaseのdatabaseより上位の入れ物)のすべてがはいったディレクトリですが、実際にはmysql_install_dbでどこにでもつくることができます。たとえばUSBメモリの中とかにも*1。
ちょっとばかり設定をすれば、sockファイルや、ログ、そういったものも一箇所にまとめる事ができるので、沢山のMysqlを共存させる(ポート番号をかえれば同時に起動も出来る)ことができて便利です。
「え、VMでできるからいらない?そうですね」
まあ、普通の人はVMをつかうといいとおもいます!「VMつかうとバッテリーがめっちゃ減るし、いちいちどこにログインしてるか意識しつつ開発したくない、IDEとかツールもガンガンつかいたい」という私みたいな人向けです。
というわけで
https://github.com/uzulla/mysql_data_setup.php
これです。なんでこういうのにPHPなのか?制作者が私だからです。
以下のような感じでつかえます。
# 新しくmysql data dirを作成 $ mkdir /path/to/my_project_data $ cd /path/to/project_mysql $ /path/to/this/mysql_data_setup.php # 開始 $ cd /path/to/my_project_data $ start_mysql.sh # 停止 $ cd /path/to/my_project_data $ stop_mysql.sh # 削除 $ cd /path/to/my_project_data $ stop_mysql.sh $ cd .. $ rm -r /path/to/project_mysql
ちなみに、これをがんばってつかうと、Mysqlのテスト用のDBをつくったりもできますが、やんごとなき理由がなければ、PerlのTest::Mysqldとかを使う方が良いでしょう。
まとめ
みなさんこういうせこいことやると、平成生まれに「なんでそんなことをする意味が…」などと言われ、「ダサイ」「イモい」「古くさい」というレッテルをゲットできますので、素直にVMをつかったほうがQoLは高まるのではないでしょうか!
ただ、昭和の人間においては、VMはモッタイナイとか、あるいは契約(検閲)とか、古代のシステムのメンテ(mysqldump --all-databasesでできたdumpをガッとロードしてシュッと直した後、バッと捨てたい時)とか、やんごとなき理由でこうしなければならないこともあるのです。
こちらからは以上です。
*1:闇