(我希望有人能够快速解决这个问题,因为这个问题出现在我的生产服务器上)
题目已经说明了问题。我曾以为MySQL的日期时间是从安装它的机器获取的...但我错了!
当前是下午2:30。
Linux显示当前时间也是下午2:30。
但是MySQL却显示是上午9:30?!?
由于数据库中的所有内容都被错误地标记了时间戳,我该怎么办呢?
mv /etc/localtime /etc/localtime_original
ln -s /usr/share/zoneinfo/Asia/Singapore /etc/localtime
service mysqld restart
看起来你想将mysql系统时区设置为UTC。添加以下行:
timezone=UTC
/etc/my.cnf
文件的[mysqld_safe]
部分,并重新启动mysqld。(有人发布了与此非常相似的内容,然后将其删除。很抱歉我一开始无法理解您的答案,我只是没有理解上下文)
使用命令行更改服务器的时区:
# export $TZ=Europe/London
然后使用以下命令重新启动mysql(RedHat/Fedora/CentOS):
# service mysqld restart
(Debian/Ubuntu):
# /etc/init.d/mysql restart
$ echo "Europe/London" | sudo tee /etc/timezone
。 - Ezequiel Muns这可能与您的语言环境有关吗?也许其中一个从您的语言环境计算+x,而另一个只使用系统时间?
show variables like '%time_zone%';
,输出是什么? - nosdate
命令,会得到2011年1月20日 星期四 15:22:06 GMT
。 - Robert JohnstoneSET GLOBAL system_time_zone='SYSTEM'
然后重启 MySQL 吗? - Robert Johnstone