使い捨てMySQL環境の作り方
使い捨てPostgreSQL環境の作り方のMySQL版です。 Webアプリなどの開発時にローカル環境で用いるMySQLサーバーの簡易な立て方を解説します。
モチベーションやDockerによるソリューションについてはPostgreSQLの記事を参照してください。
素朴なソリューション
ディレクトリを指定してMySQLを起動する
まず、MySQLをbrewとかで入れます。
そして、適当なディレクトリ(ここでは./database
)をMySQLのデータディレクトリとして初期化します。
$ mysqld --initialize-insecure --basedir=./database --datadir=./database/data
次に、そのデータディレクトリを使ってmysqldを起動します。
$ mysqld --basedir=./database --datadir=./database/data
そして別のコンソールを立ち上げると、rootユーザーとしてログインできます。
ここではまだパスワードが設定されていないので1、-p
オプションの代わりに--skip-password
オプションをつけます。
$ mysql -u root --skip-password
mysql>
そして適当にrootユーザーのパスワードを設定します。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'ここに好きなパスワードを入れる';
ここまでやれば、rootユーザーに先程設定したパスワードでログインできるようになります。
ローカルの開発環境であればrootユーザーでMySQLを使ってもいいんじゃないかと思いますが、もし気になるという人がいたらデータベースとユーザーを適当に作って、それを使って開発すればよいでしょう。
mysql> CREATE DATABASE somedb;
mysql> CREATE USER genya0407 IDENTIFIED BY 'somepassword';
mysql> GRANT ALL ON somedb.* TO genya0407;
あとはこの手順をシェルスクリプトに落とし込めば、コマンド一つでデータベースが立ち上がるようになります。
データベースを止めたいときはmysqld
のプロセスをkillすればいいし、データごと消したいときはrm -rf ./database
すればよいです。
このように、使い捨てMySQL環境を作成することができました。
参考文献
-
--initialize-insecure
オプションでデータディレクトリを初期化したため ↩