我的 MySQL 服务器时间与我的服务器时间不同

Dha*_*esh 6 mysql linux timezone

所以一个月前,我从托管公司购买了一台服务器。

信息是;

Linux Centos(最新版本)。

我安装了 ZPanel,它安装了 phpMyAdmin、MySQL 和所有其他好东西。无论如何,我已经设法将我的服务器时间更改为我的本地时间,即格林威治标准时间。但是,当我尝试在我的 MySQL 服务器上设置它时,它显示了正确的时间,但是当我使用

now()
Run Code Online (Sandbox Code Playgroud)

PHP 中的函数,时间比我的当前时间提前 1 小时存储,这几乎弄乱了我的系统。

有谁知道如何解决这一问题?请已经几个星期了,但没有什么可以解决的:/

谢谢你。

小智 6

更新服务器时间后,我遇到了完全相同的问题。我只需要重新启动 MySql 服务器然后它重置时间以匹配我的服务器时间。

/etc/init.d/mysqld restart
Run Code Online (Sandbox Code Playgroud)

参考 - https://major.io/2007/07/01/mysql-time-zone-different-from-system-time-zone/


小智 0

如果您无法在 PHP 中使服务器和 SQL 服务器同步,您始终可以使用此解决方法...

$date = date('D jS M Y, G:i:s a', strtotime('-1 hour'));
Run Code Online (Sandbox Code Playgroud)

代替now();

如果您使用共享主机,您通常可以联系支持人员来更改您的默认时区。我必须使用 ixwebhosting 来做到这一点,他们为我做到了这一点,没有任何问题。

这很复杂,因为 MySQL 在内部将“日期时间”数据类型字段存储为 UTC,但 PhpMyAdmin 使用服务器默认时间显示日期。这通常会导致混乱。

您可以尝试在 PhpMyAdmin 中的 SQL 语句之前添加此行:

SET @@session.time_zone='+00:00'; SELECT * FROM TableName
Run Code Online (Sandbox Code Playgroud)

或者

SET time_zone = '+00:00'; SELECT now();
Run Code Online (Sandbox Code Playgroud)

如果您有超级权限,您还可以使用以下命令设置系统时间。

SET GLOBAL time_zone = '+00:00';
Run Code Online (Sandbox Code Playgroud)

您可以在这里查看更多信息:http://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html