2
2

More than 3 years have passed since last update.

Docker mysql:5.7 の etc-mysql.cnf へ default-time-zone を指定したらエラーが発生

Last updated at Posted at 2020-05-01

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

参考

2
2
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
2
2