通过 PhPMyAdmin 在 MySql Server 上设置默认时区

Posted

技术标签:

【中文标题】通过 PhPMyAdmin 在 MySql Server 上设置默认时区【英文标题】:Setting default-time-zone on MySql Server via PhPMyAdmin 【发布时间】:2011-07-19 21:21:11 【问题描述】:

我有一个共享托管 mysql 实例,它的 system_time_zone 设置为太平洋标准时间,time_zone 变量设置为 System,因此它实际上是在太平洋标准时间运行。

即我已经运行以下命令来找出答案:

SELECT version( ) , @@time_zone , @@system_time_zone , NOW( ) , UTC_TIMESTAMP( )

我想将默认的 mySql 数据库/本地 mySql 数据库时区更改为 GMT/UTC 时间。我尝试运行SET time_zone = '+0:00',这确实成功执行了!

但是,当我检查@@time_zone 的状态时,这似乎不会影响 time_zone 变量。我看过另一篇处理类似问题的帖子How to set MySQL to use GMT in Windows and Linux,我还检查了MySql documentation,进展甚微。由于我使用的是共享托管解决方案,因此我的访问权限有限,而且我无法访问比我的 phpMyAdmin mySql 功能提供的更多内容。

我想知道是否有任何方法可以从 SQL 查询中更改 default_time-zone,或者我是否需要退回到命令行(很遗憾,我无权访问)。

感谢您的帮助和建议,

马丁

【问题讨论】:

你试过 SET SESSION time_zone = '+0:00' 还是 SET GLOBAL time_zone = '+0:00'? 感谢提示“client09”,但不幸的是,我收到“#1227 - 访问被拒绝;您需要此操作的 SUPER 权限”,共享主机权限不足。 【参考方案1】:

对于共享主机,您必须请支持人员帮助您并为您更改默认时区?我与 Arcor 托管服务提供商有类似的问题,打电话给他们,他们修复了它。在此之前,我从 PHP 代码中找到了 date_default_timezone_set() 的临时解决方案。可能最好的解决方案是请有权更改该参数的人。

【讨论】:

我认为在我的共享主机情况下,这可能是最明智的做法。我联系了他们,不幸的是他们拒绝为我更改默认时区。我发现这很奇怪,但我没有跟进,因为我当时决定在服务器端将所有时间转换为 UTC,而只使用 UTC,这似乎有效。【参考方案2】:

简而言之,MySQL 实际上在内部将“datetime”数据类型字段存储为UTC

However, PhpMyAdmin 使用服务器默认时间向您显示日期,因此您会感到困惑。

例如,尝试在PhpMyAdmin 中的 SQL 语句之前添加这一行:

SET @@session.time_zone='+00:00';
SELECT * FROM MY_TABLE

有关更多详细信息,请参阅MySQL 文档,或此帖子中的答案:How to correctly set mysql timezone

干杯 马特

【讨论】:

【参考方案3】:
<?php
date_default_timezone_set('UTC'); //define local time

$date=date('l jS \of F Y h:i:s A'); //type of time shown

$conn=mysql_connect("localhost","root","") or die('Could not connect!'); //your database connection here

$db_selected = mysql_select_db('databasename', $conn); //select db

$result=mysql_query("INSERT INTO table (date) VALUES ('$date')", $conn); 
?>

只需将时间作为 VARCHAR 发送到数据库中,希望对您有所帮助,并对语法错误(如果有的话)表示歉意。

【讨论】:

以上是关于通过 PhPMyAdmin 在 MySql Server 上设置默认时区的主要内容,如果未能解决你的问题,请参考以下文章

通过 phpmyadmin 访问在 mysql 中创建的数据库

无法通过在 phpMyAdmin 中创建的用户在命令行中访问 MySQL

通过 PHPMyAdmin 导出 MySQL 数据库

如何通过 phpmyadmin 将 csv 文件导入 mysql

通过 PhPMyAdmin 在 MySql Server 上设置默认时区

MySQL 现在允许通过 phpMyAdmin 导入数据