无需超级权限即可更改MySQL时区
我将此行添加到我的 config.inc.php 文件中。
$query = "SET SESSION time_zone = 'Europe/Rome'";
if (mysql_query($query, DB_LINK) == FALSE) {
die(mysql_error(DB_LINK));
}
它不会给我任何错误,但是当我使用 NOW()
或 CURRENT_TIMESTAMP()
函数时,它会保存错误时间的记录。
在没有超级权限的情况下如何在MySQL中设置日期时区?
I added this line to my config.inc.php file.
$query = "SET SESSION time_zone = 'Europe/Rome'";
if (mysql_query($query, DB_LINK) == FALSE) {
die(mysql_error(DB_LINK));
}
It doesn't give me any error, but when I use the NOW()
or the CURRENT_TIMESTAMP()
function it saves the record with a wrong time.
How can I set the date time zone in MySQL without the super permissions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
假设您使用的是 5.5,如果您看到 http:// dev.mysql.com/doc/refman/5.5/en/time-zone-support.html,它说:
mysql> SET time_zone = timezone;
它还说:
所以在没有
SESSION
的情况下尝试一下,看看它是否有效,并检查select @@session.time_zone;
为您提供正确的时区。编辑:您的数据库可能有问题。我刚刚在我的一个数据库(5.5.8)上尝试过这一点,它有效,但在 5.0.51 上失败了。所以你可能需要数据库升级。
Assuming you are using 5.5, if you see http://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html, it says:
mysql> SET time_zone = timezone;
It also says:
So try it without the
SESSION
and see if it works, and also check thatselect @@session.time_zone;
gives you the right timezone.EDIT: you may just have an issue with your database. I just tried this on one of my databases (5.5.8) and it worked, but it failed on 5.0.51. So you may need a db upgrade.
呃,我不知道如何用 mysql 设置时区...
但我更喜欢用 php 设置时区...
Erm I'm not sure how to set time zone with mysql...
but i prefer to set the time zone with php...