MySQL8@docker-compose 日本語ロケール対応

docker-composeのMySQLコンテナは即席で作ったものでロケールを設定しなくても動くことは動いた(It just work!)のですが、やっぱり日本語対応しないとまずいよね?ということで今回はグーグル先生のQiita記事を参考にしてDockerfileからイメージビルドしてみました。

お急ぎの方に先に結果をメモしておきます。参考にしたのはどちらもQiitaの秀逸な記事でしたのでシェアしたいと思います。私なりに咀嚼すると「MySQLはapt-getができるDebianのコンテナを使うとロケール設定ができるよ!」ということらしいです。

DockerのMySQLで日本語入力ができなかった話 – Qiita

DockerのMySQLコンテナで日本語を使いたい!- Qiita

ディレクトリ構成

[home]
 [ec2-user]
  [wordpress]
    ・docker-compose.yml
    ・[certs]
    ・[mysql]
      Dockerfile
    ・[data]
       my.cnf
       php.ini
       wp-config.php
      ・[html]
      ・[mysql]
 

/home/ec2-user/wordpress/mysql/Dockerfile
FROM mysql:8.0-debian RUN apt-get update && \ apt-get install -y locales RUN locale-gen ja_JP.UTF-8 RUN localedef -f UTF-8 -i ja_JP ja_JP.UTF-8 ENV LANG=ja_JP.UTF-8 ENV TZ=Asia/Tokyo

.ymlファイルもDockerfileからビルドしたイメージを使う記述に変更します。

docker-compose.yml
version: '3' services: ・ ・ mysql000ex1: build: context: . dockerfile: ./mysql/Dockerfile container_name: mysql000ex1 hostname: mysql000ex1

やったね!MySQLで日本語が入力できるようになったよ!助かる!

ただMySQLのバージョンは細かい枝番まで指定すると「Not found」エラーが出て上記のように8.0 で指定しないとpull 出来なかったようでした。また起動後もコンテナが再起動を繰り返して不安定だったので./data/mysqlディレクトリを削除して作り直しました。現時点でインストールされたDebian MySQLのバージョンは8.0.37でこの場合、my.cnf の

mysql_native_password=ON

があるとエラーになるようでコメントアウトするなり行削除すると動きました。

Qiitaさんにはいつも大変お世話になっております。貴重な情報をありがとうございました。

同じカテゴリーの記事

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です