mysqlに文字コードを設定する
docker-compose upでコンテナ起動し、mysqlログイン、mysql> show variables like 'char%'; で確認するも文字コードがlatin1になっている問題を解決する。
以下の記事を参考に、mysqlの部分にコマンドを渡すよう追記する。
*参考記事だとバージョン'2'ですが、バージョン'3'でも同じでした。
参考:https://qiita.com/neko-neko/items/de8ea13bbad32140de87
docker-compose.yml
version: '3'
### MySQL ################################################
mysql:
build:
context: ./mysql
# 〜中省略〜
# 以下追加
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
mysqlコンテナのbashで日本語入力ができるよう環境変数を設定する
bashでmysqlコンテナにログイン、日本語入力が出来ない問題を解決する。
DockerFileでlocaleを指定する。
*Linuxのディストリビュージョンによって記述が異なるので注意。今回はubuntu(debian)の場合。
参考:https://qiita.com/n_oshiumi/items/cfe91c60730f602b38eb
mysql/Dockerfile
ARG MYSQL_VERSION=latest
FROM mysql:${MYSQL_VERSION}
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
#####################################
# Set Timezone
#####################################
ARG TZ=UTC
ENV TZ ${TZ}
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone && chown -R mysql:root /var/lib/mysql/
# 以下追加
RUN apt-get update \
&& apt-get install -y locales \
&& locale-gen ja_JP.UTF-8 \
&& echo "export LANG=ja_JP.UTF-8" >> ~/.bashrc
# ここまで
COPY my.cnf /etc/mysql/conf.d/my.cnf
CMD ["mysqld"]
EXPOSE 3306