web-dev-qa-db-ja.com

MySQLサーバーの時刻がサーバーと同じではない

そのため、1か月前に、ホスティング会社からサーバーを購入しました。

情報は;

Linux Centos(最新バージョン)。

PhpMyAdmin、MySQL、その他すべての優れたものをインストールするZPanelをインストールしました。とにかく、サーバーの時刻を現地時間のGMTに変更できました。しかし、MySQLサーバーに設定しようとすると、適切な時間が表示されますが、

now()

pHPの関数では、時刻が現在の時刻より+1時間進んでいるため、システムをかなり混乱させます。

誰かがこれを修正する方法を知っていますか?数週間経ちましたが、まだ修正するものはありません:/

ありがとうございました。

5
Dharmesh

サーバー時間を更新した後も、まったく同じ問題が発生しました。 MySqlサーバーを再起動するだけで、サーバーの時刻に合わせて時刻がリセットされました。

/etc/init.d/mysqld restart

リファレンス- https://major.io/2007/07/01/mysql-time-zone-different-from-system-time-zone/

5
Josh

私の場合、my.cnfのタイムゾーンの設定が間違っていました。正しい形式は次のとおりです。

default_time_zone=Europe/Riga

また、次のようにシェルを介してmysqlタイムゾーンを更新したことを確認してください。 https://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html

mysql_tzinfo_to_sql ...を使用

0
Evalds Urtans

IfサーバーとSQLサーバーを同期させることができない、PHPでは常にこの回避策を使用してください...

_$date = date('D jS M Y, G:i:s a', strtotime('-1 hour'));
_

now();の代わりに

共有ホスティングを使用している場合は、サポートに連絡してデフォルトのタイムゾーンを変更することがよくあります。ixwebhostingで変更する必要があり、問題なく動作しました。

ただし、MySQLは「datetime」データ型フィールドをUTCとして内部的に格納しますが、PhpMyAdminはサーバーのデフォルト時間を使用して日付を表示するため、これは複雑です。これにより、混乱が生じることがよくあります。

PhpMyAdminのSQLステートメントの前に次の行を追加してみてください。

_SET @@session.time_zone='+00:00'; SELECT * FROM TableName
_

または

_SET time_zone = '+00:00'; SELECT now();
_

SUPER権限がある場合は、以下を使用してシステム時刻を設定することもできます。

_SET GLOBAL time_zone = '+00:00';
_

詳しくはこちらをご覧ください http://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html

0
Cully