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使新时区生效

标签: none

添加新评论