サイトアイコン 上尾市のWEBプログラマーによるブログ

[docker] MySQLで日本語が文字化けしてしまう場合の解決法

docker

概要

dockerのMySQLコンテナはそのまま使うと日本語が文字化けしてしまう。
MySQLの設定ファイルmy.cnfで文字コードを指定することで、文字化けを解消することができる。

手順

1. my.cnfを用意し、任意のディレクトリ内に格納する

ここではmysql/my.cnfとする。

[mysqld]
character_set_server = utf8mb4
collation-server=utf8mb4_unicode_ci

[mysql]
default-character-set = utf8mb4

[client]
default-character-set = utf8mb4

※ collation-serverは必要に応じてutf8mb4_binなどに変更する。

参考サイト

MySQLの文字コードとCollation - Qiita
散々、書かれていることで、何度もでてくる話なので、自分用にまとめ。文字コードまずMySQLの文字コードですが絵文字のみでなく、JIS X 0213の第3・4水準漢字の一部にUTF8 4バイト文…

2. docker-compose.ymlのvolumesでmy.cnfを指定する

version: '3.9'

services:
  mysql:
    image: mysql:5.7
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: hoge
      LANG: ja_JP.UTF-8
    volumes:
      - ./mysql/dbdata:/var/lib/mysql
      - ./mysql/my.cnf:/etc/mysql/conf.d/my.cnf
    restart: always
モバイルバージョンを終了