侧边栏壁纸
博主头像
惬意小蜗牛博主等级

海内存知己,天涯若比邻!

  • 累计撰写 54 篇文章
  • 累计创建 143 个标签
  • 累计收到 57 条评论

目 录CONTENT

文章目录

mysql时区问题解决几种方法

惬意小蜗牛
2021-07-20 / 0 评论 / 0 点赞 / 1,696 阅读 / 441 字 / 正在检测是否收录...

问题排查

mysql 数据库可以通过下面两个sql查看时区

select timediff(now(),convert_tz(now(),@@session.time_zone,'+00:00'));

或者

SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP);

如果是中国标准时间, 会输出 08:00:00

方法一:通过mysql命令行模式下动态修改

1.1 查看 mysql 当前时间

> select curtime();   #或select now()也可以
+-----------+
| curtime() |
+-----------+
| 02:12:25  |
+-----------+

> show variables like "%time_zone%";
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone | CST    |
| time_zone        | SYSTEM |
+------------------+--------+

# time_zone 说明 : mysql 使用 system 的时区
# system_time_zone 说明: system 使用 CST 时区

1.2 修改时区

set global time_zone = '+8:00';  ##修改mysql全局时区为北京时间,即我们所在的东8区
set time_zone = '+8:00';  ##修改当前会话时区
flush privileges;  #立即生效

1.3 验证时区

select curtime();   #或select now()也可以
+-----------+
| curtime() |
+-----------+
| 10:12:30  |
+-----------+

> show variables like "%time_zone%";
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone | UTC    |
| time_zone        | +08:00 |
+------------------+--------+

方法2:在数据库配置中添加默认时区

方法1 :通过修改my.cnf配置文件来修改时区

# vim /etc/my.cnf  ##在[mysqld]区域中加上
default-time_zone = '+8:00'

# /etc/init.d/mysqld restart  ##重启mysql使新时区生效

方法2:SQL语句配置全局时区

mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone |        |
| time_zone        | SYSTEM |
+------------------+--------+
2 rows in set, 1 warning (0.00 sec)

# 设置当前 session 时区,即时生效,但仅作用于当前session
mysql> set time_zone='+8:00';
Query OK, 0 rows affected (0.00 sec)

# 设置全局时区,即时生效,作用于所有 session
mysql> set global time_zone='+8:00';
Query OK, 0 rows affected (0.00 sec)
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)
0

评论区