DockerでMySQL環境を1コマンドで簡単に構築する方法

Docker

MySQL環境構築

MySQLの環境をさっと作りたいけど、ローカルにインストールするのは面倒だったり、エラーでうまくいかなかったり、環境構築って面倒ですよね!

そんな時はこれから紹介するDockerを使うと便利です。

Dockerを使えば、環境構築が簡単になるだけでなく、複数のMySQLを立ち上げる事もできるので、プロジェクト毎に使い分けるってことも可能です!

Dockerをまだインストールしていない方はこちらからインストールしてください!

Macでの手順はこちら。

Ubuntuでの手順はこちら。

MySQLの構築

実行コマンド

それではDockerでMySQLを構築するためのコマンドを見ていきます。

コマンドはこちらです!めちゃくちゃ簡単ですね!!

$ docker run --name mysql -v `pwd`/docker/mysql/data:/var/lib/mysql -p 3306:3306 -e MYSQL_DATABASE=database -e MYSQL_ROOT_PASSWORD=root -e MYSQL_USER=mysql -e MYSQL_PASSWORD=mysql mysql:5.7

実行コマンド補足

  • mysql:5.7という記述でMySQL5.7を構築している
  • カレントディレクトリにdockerというディレクトリを作成してMySQLのボリュームをマウントしている
  • MYSQL_DATABASEで、データベース名を指定し作成している
  • MYSQL_ROOT_PASSWORDでrootユーザのパスワードを指定している
  • MYSQL_USERで一般ユーザを作成している
  • MYSQL_PASSWORDで一般ユーザのパスワードを指定している

また今回はMySQL5.7で作成していますが、別のバージョンを指定して構築することも可能です。

カレントディレクトリにMySQLのボリュームをマウントしているので、コンテナ停止後も再度このディレクトリを指定して起動すれば、データを永続化させることが可能です。

データを初期化したい場合は、このマウントされたディレクトリを削除すればOKです。

接続方法

接続コマンド

接続する際は、起動しているMySQLコンテナのIPなどを調べても良いですが、面倒なので、-h 0.0.0.0のようにすると簡単に接続できます。

$ mysql -h 0.0.0.0 -uroot -p'root'

こんな感じでMySQLに接続できればOK。

$ mysql -h 0.0.0.0 -uroot -p'root'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.27 MySQL Community Server (GPL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

Dockerコマンドで指定したdatabaseという名前のデータベースが作成されていればOKですね!

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| database           |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.04 sec)

まとめ

今回はDockerでMySQLを簡単に構築しました!

Dockerを使うと環境構築が圧倒的に楽になりますし、実質Webエンジニアとしては必須のスキルなので学習してマスターできるといいですね!

筆者オススメの関連商品

コメント