MySQL时区的查看和设置
MySQL数据库的系统时区,其实是分两种的,一种是MySQL的全局时区,另外一种是当前会话的时区,如果当前会话不指定时区,就默认使用全局时区。
> select curtime(); #或select now()也可以
+-----------+
| curtime() |
+-----------+
| 15:18:10 |
+-----------+
> show variables like "%time_zone%";
+------------------+--------+
| Variable_name | Value |
+------------------+--------+
| system_time_zone | CST |
| time_zone | SYSTEM |
+------------------+--------+
# time_zone说明MySQL使用system的时区,system_time_zone说明system使用CST时区
# CST可视为美国、澳大利亚、古巴或中国的标准时间。
输入下面的语句,执行后,就可以将全局时区修改为东8区,即北京时间
set global time_zone = '+8:00';
输入下面的语句,执行后,就可以将当前会话的时区修改为东8区,即北京时间
set time_zone = '+8:00';
执行完成上面的SQL语句之后,如果想让时区立即生效,还需要执行下面的语句
flush privileges;
另外,还可以通过修改my.cnf配置文件来修改时区,如下所示:
# vim /etc/my.cnf ##在[mysqld]区域中加上
default-time_zone = '+8:00'
# /etc/init.d/mysqld restart ##重启mysql使新时区生效