【開発環境構築】DockerでMySQLの開発環境を構築する

DB

 

はじめに

DockerでMySQLの開発環境を作成するログを書いていきます。

  

前提条件

以下の条件が実施済みであること

・Dockerが設定済みであること
【開発環境構築】DockerをインストールしてPCにコンテナを作成してみる – SEもりのLog (selifemorizo.com)

  

フォルダ/ファイル構成を作成する

MySQL
│  docker-compose.yml
│
└─db
    ├─data  ←Mysqlのデータをマウントするフォルダ
    └─sql
            Create_Table.sql 

 

docker-compose.ymlファイルを作成する

version: '3'

services:
 #MYSQL
 mysql :
  container_name: MysqlTest
  image: mysql:latest
  command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
  environment:
    MYSQL_ROOT_PASSWORD: rootPass
    MYSQL_DATABASE: test_database
    MYSQL_USER: testUser
    MYSQL_PASSWORD: testPass
    TZ: 'Asia/Tokyo'
  #データを保管するためにボリュームを指定する
  volumes:
    - ./db/data:/var/lib/mysql
  #MySQLのデフォルトポートは「3306」だが、既に使用している場合は、別の値を使用する
  ports:
    - '3307:3306'

 

Docker-composeコマンドを実行する

最初の実行は少し時間がかかるかもしれません。
-f 以降は自身の作成したファイルのパスを指定してください。

>docker-compose -f \docker-compose.yml up -d

 

コンテナが作成されたことを確認する

>docker ps
CONTAINER ID   IMAGE          COMMAND                   CREATED          STATUS          PORTS                               NAMES
51e78c4889d4   mysql:latest   "docker-entrypoint.s…"   16 seconds ago   Up 11 seconds   33060/tcp, 0.0.0.0:3307->3306/tcp   MysqlTest

 

接続確認してみる

「A5M2」ツールで接続して確認してみます。

「A5M2」をダウンロード

以下サイトからツールをダウンロードします。
A5:SQL Mk-2 – フリーのSQLクライアント/ER図作成ソフト (松原正和) (mmatsubara.com)

 

接続

A5M2を実行し、「データベース → データベース追加と削除 → 追加」から設定値を入力し接続する。
ホスト名:localhost
ポート番号:docker-compose.ymlで設定したポート
ユーザID:root
パスワード:docker-compose.ymlで設定したパスワード

接続できたら完了です。

 

テーブルを用意して検索まで実施

CREATE

CREATE TABLE `test_table`
(
 `id`               INT(20),
 `name`             VARCHAR(20) NOT NULL,
 `createdUser`      VARCHAR(20) NOT NULL,
 `createdDate`       Datetime DEFAULT NULL,
 `updatedUser`      VARCHAR(20) DEFAULT NULL,
 `updatedDate`       Datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

 

INSERT

INSERT 
INTO mysql.test_table( 
    id
    ,name
    ,createdUser
    ,createdDate
    ,updatedUser
    ,updatedDate
) 
VALUES ( 
     1
    ,'mori'
    ,'mori'
    , CURDATE()
    , NULL
    , NULL
)

 

SELECT

SELECT
    id
    ,name
    ,createdUser
    ,createdDate
    ,updatedUser
    ,updatedDate
FROM
    mysql.test_table 
ORDER BY
    id; 

 

 

ドキュメント

【Docker】
Compose Specification(仕様) — Docker-docs-ja 24.0 ドキュメント

【MySQL】
MySQL

 

最後に

以上、ログになります。
これからも継続していきましょう!!

DB共通
おすすめIT本
良いコード/悪いコードで学ぶ設計入門

「ITエンジニア本大賞2023」技術書部門で大賞を受賞した本です。
・コードの可読性
・普段意識したほうが良いこと
・リファクタリング考え方
等、普段のコードを設計する際に意識することが書かれています。
コードのあるべき姿に迷ったら一度読んでみると良い本です。

仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん

Dockerって何?となったときに私が最初に読んだ本です。
Dockerがどんな仕組みで動いているのか、コマンドでは何を命令しているのかを理解できるように、イラストを多用して説明しています。

1冊ですべて身につくJavaScript入門講座

「ITエンジニア本大賞2024」技術書部門で大賞を受賞した本です。
私が次に読もうと思っている本なのでおすすめとして挙げておきたいと思います。

コメント

タイトルとURLをコピーしました