LoginSignup
7
4

More than 3 years have passed since last update.

MacでDocker上に日本語環境のMySQL8.0を建てる

Last updated at Posted at 2019-11-18

前書き

  • DockerにMySQLコンテナを日本語環境でサクッと建てたい!
  • MySQLのバージョンは最新のバージョン(8)にしたい!
  • Macで作業したい!

を叶えるためのメモ。
タイトルでMacと謳っていますがWindowsでもほぼ同じ手順です。
違いはDockerのインストーラーがMac用かWindows用かだけです。

環境

  • Mac 10.15.1 (Catalina)
  • Docker for Mac

事前準備

  1. Docker Desktop for Mac をインストールする
     参考URL:https://qiita.com/kurkuru/items/127fa99ef5b2f0288b81

  2. Kitematic をインストールする
     →DockerコンテナをGUIで操作できるアプリ。インストール手順はタスクトレイのDockerアイコンから。
      docker-composeで設定した共有ディレクトリやポートなどの確認もこれで行いました。

docker-composeでMySQLコンテナを立てる

参考URL

上記を参考に、MySQL8のコンテナを日本語環境で建てる。
特に2つ目のリンクはほぼそのまま参考にさせていただきました。

docker-compose.yml
version: '3'

services:
  mysql:
    build:
      context: ./mysql
      dockerfile: Dockerfile
    environment:
      MYSQL_ROOT_PASSWORD: root   #rootユーザのパスワード
      MYSQL_USER: test            #ユーザアカウント
      MYSQL_PASSWORD: password    #ユーザアカウントのパスワード
      MYSQL_DATABASE: testDb      #DB名
      TZ: "Asia/Tokyo"
    ports:
      - 13306:3306
    volumes:
      - ./mysql/data:/var/lib/mysql
      - ./mysql/sql:/docker-entrypoint-initdb.d
Dockerfile
FROM mysql:8.0

# Set debian default locale to ja_JP.UTF-8
RUN apt-get update && \
    apt-get install -y locales && \
    rm -rf /var/lib/apt/lists/* && \
    echo "ja_JP.UTF-8 UTF-8" > /etc/locale.gen && \
    locale-gen ja_JP.UTF-8
ENV LC_ALL ja_JP.UTF-8

# Set MySQL character
RUN { \
    echo '[mysqld]'; \
    echo 'character-set-server=utf8mb4'; \
    echo 'collation-server=utf8mb4_general_ci'; \
    echo '[client]'; \
    echo 'default-character-set=utf8mb4'; \
} > /etc/mysql/conf.d/charset.cnf

上記のディレクトリイメージは以下の通り。

├── docker-compose.yml
└── mysql
    ├── Dockerfile (上記のファイル)
    ├── data (ディレクトリ)
    └── sql (ディレクトリ)

接続確認は適当なDBクライアントでOK.
個人的にはDBeaverを使いました。WindowsだとA5:SQL Mk-2が好きなのですが…。

初期構築用のCreateTableやInsertなどのSQLファイルはsqlディレクトリに放り込むイメージです。

7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4