端くれプログラマの備忘録 MySQL [MySQL] タイムゾーンを設定する

[MySQL] タイムゾーンを設定する

稼働中のLaravelサイトをローカルに複製するために、DBをダンプしてローカルにインポートしたところ、ローカルのLaravelが以下のエラーを吐いた。

$ php artisan config:clear
In Connection.php line 664:
SQLSTATE[HY000]: General error: 1298 Unknown or incorrect time zone: 'Asia/Tokyo' (SQL: select `value`, `key` from `
setting`)
In PDOStatement.php line 123:
SQLSTATE[HY000]: General error: 1298 Unknown or incorrect time zone: 'Asia/Tokyo'
In PDOStatement.php line 121:
SQLSTATE[HY000]: General error: 1298 Unknown or incorrect time zone: 'Asia/Tokyo'

ローカル(CentOS7)のMySQLには’Asia/Tokyo’というタイムゾーンが定義されていないみたい。

参考サイトの手順に倣ってタイムゾーンデータをインポートすることで解決。

$ sudo /usr/bin/mysql_tzinfo_to_sql /usr/share/zoneinfo > ~/timezone.sql
$ mysql -u root -p -Dmysql < ~/timezone.sql
Enter password: *****
$ sudo vi /etc/my.cnf
[mysqld]
default-time-zone = 'Asia/Tokyo'
$ sudo service mysqld restart

参考サイト

MySQLでタイムゾーンを設定する – Qiita
https://qiita.com/tailak/items/63dce2dd7dfe049b038e