1. はじめに
MySQL5.5系から5.6系へアップデートした場合、
新規で追加された予約語が本当にエラーになるのかを検証するために
DockerでMySQL5.6系の環境を作成したときのメモです。
2. Windows7へDocker Toolboxをインストール
以下の記事を参考にさせていただきました。
「Docker Toolboxのインストール:Windows編」
https://qiita.com/maemori/items/52b1639fba4b1e68fccd
3. Docker-machineにproxyの設定
proxy環境下で作業しているため、proxyの設定を実施します。。
※proxy環境下でdockerのイメージをpullしたいため。
3.1 「Docker Quickstart Terminal」を起動
Dockerインストール時に作成された「Docker Quickstart Terminal」を起動します。
※私の環境では、起動時に「bash.exe」がないぞ!!と怒られました。
「Git for Windows」をDockerインストール時ではなく、予めインストールしていたためなのか。
その場合は、参照ボタンから{Gitインストールフォルダ}\bin\bash.exeを選択すれば問題ありません。
初回起動時はdefaultのDocker-machineを作成するのでそこそこ時間がかかります。
コーヒーでも飲みながら待ちましょう。
クジラさんが表示されたら次へ。
3.2 docker-machineに接続
$ docker-machine ssh default
のコマンドを実行し、docker-machineに入ります。
3.3 proxy設定を追記
こちらを参考にさせていただきました。
「Proxy環境下のDockerトラブルシューティング」
https://qiita.com/tora470/items/cd9335f5ce638e11bb97
$ sudo vi /var/lib/boot2docker/profile
のコマンドを実行し、profileファイルをオープンします。
そこにproxy設定を追記します。
export HTTP_PROXY=http://xxxxx.xx.xx:8080
export HTTPS_PROXY=$HTTP_PROXY
3.4 Dockerの再起動
$ sudo /etc/init.d/docker restart
のコマンドを実行し、Dockerを再起動します。
再起動が完了したら、
$ exit
でDocker-machineから抜けておきましょう。
これでproxyの設定は完了です。
4. MySQLのコンテナを作成する
今回は「MySQL5.6.38」の環境を作成してみようと思います。
4.1 イメージを取得する
まずは以下のコマンドを実行して、コンテナを作成する元となるイメージを取得します。
$ docker pull mysql:5.6.38
4.2 コンテナを作成する
$ docker run --name mysql5.6.38 -p 12345:3306 -e MYSQL_USER=root -e MYSQL_ROOT_PASSWORD=pass -d mysql:5.6.38
今回は以下のようにしています。
コンテナ名称 | MySQLの初期ユーザ | MySQL初期ユーザのパスワード |
---|---|---|
mysql5.6.38 | root | pass |
これでコンテナの作成は完了しました。
5. MySQLを起動してみる
MySQLのコンテナ作成が完了したので、ここからはコンテナに入って新規ユーザの作成と新規データベースの作成を行ってみたいと思います。
5.1 MySQLのコンテナに入る
以下のコマンドを実行し、コンテナに入ります。
$ docker exec -it mysql5.6.38 /bin/bash
5.2 MySQLにログイン
以下のコマンドを実行し、MySQLにログインします。
$ mysql -u root -p
※「Enter password:」でコンテナ作成時に設定したパスワードを入力します。
5.3 MySQLのユーザ作成
$ CREATE USER {ユーザ名}@{ホスト} IDENTIFIED BY '{パスワード}';
※ホストに'%'を指定すると全てのホストからの接続を許可することになります。
ローカルマシンからのみの接続としたい場合、
docker-machineのipアドレス「192.168.99.100」ではなく
Win7のネットワークアダプタにあるVirtualBox Host-Only Ethernet Adapter #2の
ipアドレス「192.168.99.1」にする必要があるようです。
5.4 MySQLのユーザに権限を付与
$ GRANT ALL PRIVILEGES ON *.* TO {ユーザ名}@{ホスト} WITH GRANT OPTION;
5.5 データベースの作成
$ CREATE DATABASE testDB default character set utf8;
以上でMySQLに新規ユーザとデータベースを作成することができました。
6. ツールからの接続
今回は有名な「A5:SQL Mk-2」というツールから接続を行ってみます。
以下のように設定して、
テスト接続ボタンをクリック!!
できた!!
7 おわりに
以上で今回の目的は達成できました。
Dockerは簡単に環境を作成できるので非常に便利ですね。