at backyard

Color my life with the chaos of trouble.

コマンド一つでサンプルデータの入ったMySQLの動くDockerをローカルに構築する

最初に

自分がやろうと思っていたことと全く同じことをやっている方がいらっしゃいましたので、先にその方のポストを貼っておきます。
たまたま記事を見つけて、完全にかぶっとる... と思いました。
とても有益な情報でしたので、ぜひチェックしてみてください

budougumi0617.github.io

なお、以下は実際に自身の手元で操作したときの作業ログになります。備忘録。

構築コマンド

下記のGithubリポジトリをローカルにcloneして、下記のコマンドを打てばサンプルデータの入ったMySQLの動くDockerがローカルに動き出します
Docker Hubにもイメージが上がっているようですが、自分としては直接ソースコードを見つつ、buildしたかったので、下記のGithubリポジトリをローカルにcloneしてビルドさせていただきました。

github.com

# clone
git clone https://github.com/budougumi0617/mysql-sakila.git

# 今回は5.7を使用
cd mysql-sakila/5.7

# データセットアップに必要なファイルをコピーでカレントに持ってくる
cp -r ../sakila-db .

# イメージを一度ビルドする
docker build -t sakila-data-mysql-5.7 .

# docker 起動 (名前はひとまず、"sakila-data-mysql-5.7-01"にしている)
docker run  -d -e MYSQL_ALLOW_EMPTY_PASSWORD=yes  -p 3306:3306 --name sakila-data-mysql-5.7-01 sakila-data-mysql-5.7 mysqld

ポートは 3306 で動かすようにしています。
これで後はDBに接続するだけ。

ちなみにMYSQL_ALLOW_EMPTY_PASSWORD=yesを指定しているのでパスワードは不要で、下記の接続内容でMySQLに繋がります

Host: 127.0.0.1
Username: root
Password: (空でOK)
Database: sakila
Port: 3306

ちょっとハマったこと - Sequel Pro

私のメインマシンは現在macOSで、DBのクライアントにはSequel ProNightly Builds を使っているのですが、上の接続条件でテスト接続しようとすると接続に失敗しました。
テスト接続ではなく、普通にDB接続すると正常につながるのですが、テスト接続だけが弾かれるという...そんな状態になっており、ハマりました。

sequelpro.com

追記:Sequel Proのgithub issueに似たような問題がすでに見つかっていました。

github.com

ちょっと違うけど、ここらへんも関連するのかな?

github.com