【MySQL】修改时区设置
实践中遇到的一个问题,开发环境的时间数据一切正常,但正式环境数据库中的时间数据与实际相比差了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() | +---------------------+ | 2011-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
还没有人抢沙发呢~