如何解决MariaDB时区错误
SHOW GLOBAL VARIABLES LIKE 'time_zone'
返回:
Variable_name | Value
time_zone SYSTEM
在Centos 7服务器上timedatectl
返回:
Local time: Fr 2020-09-25 20:24:14 CEST
Universal time: Fr 2020-09-25 18:24:14 UTC
RTC time: n/a
Time zone: Host (CEST,+0200)
将新行插入具有DATETIME
类型和默认值current_timestamp()
的表中,此字段具有UTC时间[在这种情况下为 2020-09-25 18:24:14 代替 2020-09-25 20:24:14 ]。
我的问题
我在做什么错?我知道如何设置时区,但是SYSTEM
值应该可以,因为Centos 7服务器设置了正确的时区。
更新
1)
回答SELECT @@GLOBAL.time_zone,@@SESSION.time_zone;
后,将返回第一个SYSTEM
和第二个“ +00:00”。我正在Plesk环境中的PHP下运行它。
2)
表的开头没有这个DATETIME字段。当我将其与PMA添加在一起时,插入的日期时间[因为该字段被定义为NOT NULL
]是正确的!仅当我运行INSERT
语句时,它才会插入UTC时间。
解决方法
感谢Danila Vershinin,我可以找到问题所在。是他的问题,SELECT @@GLOBAL.time_zone,@@SESSION.time_zone;
返回的内容使我朝着正确的方向前进。
首先,我在PMA中运行了同时返回SYSTEM
的命令。在PMA中插入行会生成正确的时间。这只是在CakePHP下运行的PHP脚本中出错,然后我检查了app_local.php
中的设置,确实有UTC
作为timezone
。将timezone
更改为SYSTEM
可以解决此问题。
我该说些什么,MariaDB可以正常工作,并且由于默认的CakePHP timezone
设置,我遇到了这个问题。我现在还在问题中添加了cakephp
标签,因为这是问题的原因。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。