实践中遇到的一个问题,开发环境的时间数据一切正常,但正式环境数据库中的时间数据与实际相比差了8个小时。根据以往的PHP时区问题经验,断定问题处在MySQL的时区设定上。
用命令行连上去看一下时间,可以确认问题mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name | Value |
+------------------+--------+
| system_time_zone | |
| time_zone | SYSTEM |
+------------------+--------+
2 rows in set, 1 warning (0.00 sec)
mysql> select now();
+---------------------+
| now() |
+---------------------+
| -12-30 18:12:25 |
+---------------------+
1 row in set (0.00 sec)
修改方法:
修改mysql安装目录下的bin/my.ini,增加以下一行配置项
default-time-zone = "+8:00"
重启mysql,搞定了
mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name | Value |
+------------------+--------+
| system_time_zone | |
| time_zone | +08:00 |
+------------------+--------+
2 rows in set, 1 warning (0.00 sec)
p.s. PHP的时区配置项为
date.timezone = "Asia/Shanghai"
PHP代码中可以通过以下代码来设置时区
date_default_timezone_set("Asia/Shanghai");
时区问题是个小问题,但有时候会影响数据展现,所以统一设置一下比较好。
本博客所有文章如无特别注明均为原创。
如果觉得《mysql 设置时区 【MySQL】修改时区设置》对你有帮助,请点赞、收藏,并留下你的观点哦!