LoginSignup
4
4

More than 5 years have passed since last update.

Docker for Windowsで立ち上げたMySQLで日本語を使用できるようにする方法

Last updated at Posted at 2018-08-24

環境

  • Docker for Windows
  • MySQL:5.7

対象

  • Docker for Windowsで立ち上げたMySQLコンテナで日本語を使いたい人

原因

なぜ日本語が使えないかというと、初期設定ではマルチバイト文字が使えない設定だからです。

問題解決

対処法としては、設定ファイル(/etc/mysql/my.cnf)に以下の設定を追記することです。

my.cnf
[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqldump]
default-character-set=utf8

[mysqld]
character-set-server=utf8

なぜこの設定なのかは「Docker mysql 文字化け」とかでググってください。

この設定の追記方法ですが、docker-compose.ymlのvolumesで対応しようとするとWindowの場合パーミッションがおかしくなってしまうのでDockerfileで対応します。

/build/Dockerfile
FROM mysql:5.7

# my.cnf
RUN { \
        echo '[client]'; \
        echo 'default-character-set=utf8'; \
        echo '[mysql]'; \
        echo 'default-character-set=utf8'; \
        echo '[mysqldump]'; \
        echo 'default-character-set=utf8'; \
        echo '[mysqld]'; \
        echo 'character-set-server=utf8'; \
    } >> /etc/mysql/my.cnf

docker-compose.ymlの書き方は自由ですが私はこんな感じです。

docker-compose.yml
version: '2'
services:
  mysql:
    container_name: mysql
    build: "./build"
    volumes:
      - ./mysql_data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: root
    ports:
      - 3306:3306
    expose:
      - "3306"
    privileged: true
4
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
4
4