Cakephp プログラミング 環境構築

【Cakephp】AsiaTokyoタイムゾーンをMySQLに追加する方法

 

こんにちは。ふわふわしょうちゃんです。

 

久しぶりに過去に個人開発したWEBサービス【danceroot.net】をローカルで動かそうとしたのですが、PC環境を一新していたので、流石に動かず。

 

とりあえず、Asia/Tokyoタイムゾーンがねーよ。というエラーが出たので、以下、手順を残しておきます。

 

 

タイムゾーンを検索し、確認

久しぶりに、個人開発したWEBサービスをローカルで動かそうとしたら、以下、エラーが発生しました。

 

比較的、新しいバージョンのXAMPPには、MariaDBのmysqlテーブル内にAsia/Tokyoのタイムゾーンデータが存在しないようです。

ですので、CakeなどのフレームワークにAsia/Tokyoを指定すると、エラーが起きてしまいます。

 

念のため、phpmyadminから、タイムゾーンデータが本当にないのか、確認しておきます。

データベースは「mysql」を選択しておいてください。

 command
select * from mysql.time_zone;

タイムゾーンのデータが存在しないのを確認できました。

 

【XAMPP】MySQLサイトからタイムゾーンをダウンロード

XAMPP環境の場合、MySQLのサイトからSQLファイルをダウンロードしてください。

 

以下、URLです。

https://dev.mysql.com/downloads/timezones.html

 

赤枠の「timezone_2020f_posix_sql.zip」をダウンロードし、解凍後、SQLファイルをインポートします。

 

ここでは、phpmyadminを使用します。

mysqlデーターベース選択後、「インポート」タグを選択し、先ほどのSQLファイルを選択し、実行してください。

 

無事にインポートが完了しました。

 

【Linux】mysql_tzinfo_to_sqlコマンドで追加する

Linuxの場合、新規にMySQLをyum経由などで、インストールした際にも、タイムゾーンのセットアップをする必要があります。

以下のコマンドを実行します。MySQLログインをしていない状態

 command
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u ユーザー名 mysql -pパスワード

 

まとめ

フレームワークを使用するにあたり、タイムゾーンの設定は、必ず初期設定時に行うケースが多いと思います。

でなければ、登録日時とか、時刻がずれている状態になるので、運用できません。

 

フレームワークに慣れていない方だと、フレームワーク側の問題だと勘違いしがちなエラーですが、フレームワークはミドルウェア群とも密接に関係しているので、少し広い視点で捉えてみると良いかもしれません。

 

じゃ、そーゆうことで!!

-Cakephp, プログラミング, 環境構築
-

© 2021 FuwaFuwaShoChan BLOG