TimeZone を Asia/Tokyo にする必要があり etc-mysql.cnf へ default-time-zone を指定したらエラーが発生したので、その対処の備忘録です。
現象
etc-mysql.cnf へは以下を記載して、 docker-compose 経由でコンテナを立ち上げていました。
etc-mysql.cnf
[mysqld]
default-time-zone = 'Asia/Tokyo'
すでに MySQL用の Volume が作成されている場合はエラーは発生しなかったのですが、 Volume が作成されていない状態(初めての状態)で docker-compose すると、 MySQL のコンテナがエラーで立ち上がりませんでした。
docker logs
コマンドでエラー内容を確認すると以下のエラーが発生していました。
Fatal error: Illegal or unknown default time zone ‘Asia/Tokyo’
エラー解消方法
etc-mysql.cnf で指定した場合、タイムゾーンがロードされていないため、エラーが発生しています。
簡単な対応方法は、以下のように環境変数「TZ」でタイムゾーンを指定する方法です。
docker-compose.yml
db:
image: mysql:5.7
container_name: db
ports:
- 3306:3306
environment:
- MYSQL_ROOT_PASSWORD=root
- TZ=Asia/Tokyo