はじめに
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
最後に
以上、ログになります。
これからも継続していきましょう!!

 
  
  
  
  
コメント