mysql时区作用_mysql 时区问题

mysql时区作用_mysql 时区问题1 问题源自何处 之前用的 mysql8 0 以上的版本连接时都需要在 url 后面加 serverTimezo UTC 实际上是指出核数据库的时区为美国 因为我们的数据库的时区是美国的 而我们连接的时候用的是中国的北京时间 然后比美国早上 8 个小时 然后呢用的时候就必须指出我们当前用的时间是美国的时间 这样才能连接上数据库 2 那么可不可以直接将数据库的默认时区改到中国呢 当然是可以的 如果是 wind

1.问题源自何处?

之前用的mysql 8.0以上的版本连接时都需要在url后面加 serverTimezone=UTC

实际上是指出核数据库的时区为美国。因为我们的数据库的时区是美国的,而我们连接的时候用的是中国的北京时间,然后比美国早上8个小时,然后呢用的时候就必须指出我们当前用的时间是美国的时间,这样才能连接上数据库。

2.那么可不可以直接将数据库的默认时区改到中国呢?

当然是可以的,如果是windows系统,在mysql解压路径下的 my.ini 文件的 [mysqld] 里面加上 default-time-zone=’+8:00’ ;

改了之后那么现在就可以直接用 “裸url了”。

mysql 使用了UTC方式来记录日志时间,也就是说这是个世界统一时间,存入mysql中的时间只能是UTC时间。mysql的timestamp类型数据,存储的时候会转化成UTC时间戳,读取时再从UTC转化为本地时间戳。各地的标准时间为格林威治时间(G.M.T)加上 (+) 或减去 (-) 时区中所标的小时和分钟数时差。中国是GMT+8.

1.1 查看mysql当前时间,当前时区

> selectcurtime(); #或select now()也可以+———–+

| curtime() |

+———–+

| 15:18:10 |

+———–+

> show variables like “%time_zone%”;+——————+——–+

| Variable_name | Value |

+——————+——–+

| system_time_zone | CST |

| time_zone | SYSTEM |

+——————+——–+

2 rows in set (0.00sec)

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

1.2 修改时区

set global time_zone = ‘+8:00’; 修改mysql全局时区为北京时间,即我们所在的东8区set time_zone = ‘+8:00’; 修改当前会话时区

flushprivileges; #立即生效

解决方法:

方法1、使用6.0以下版本的jdbc:降版本,并不推荐;

方法2、在jdbc url指定默认时区:

还有一种是在jdbc连接的url后面加上serverTimezone=UTC或GMT即可,如果指定使用gmt+8时区,需要写成GMT%2B8,否则可能报解析为空的错误。示例如下:

jdbc.url=jdbc:mysql://localhost:3306/demo?serverTimezone=UTC&characterEncoding=utf-8jdbc.url=jdbc:mysql://localhost:3306/demo?serverTimezone=GMT%2B8&characterEncoding=utf-8jdbc.url=jdbc:mysql://localhost:3306/demo?serverTimezone=Asia/Shanghai&characterEncoding=utf-8

增加:

serverTimezone=UTC

serverTimezone=GMT%2B8

推荐使用如下:

serverTimezone=Asia/Shanghai

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

SQL语句配置全局时区

mysql> show variables like ‘%time_zone%’;+——————+——–+

| Variable_name | Value |

+——————+——–+

| system_time_zone | |

| time_zone | SYSTEM |

+——————+——–+

2 rows in set, 1 warning (0.00sec)

#设置当前session时区,即时生效,但仅作用于当前session

mysql> set time_zone=’+8:00′;

Query OK,0 rows affected (0.00sec)

#设置全局时区,即时生效,作用于所有session

mysql> set global time_zone=’+8:00′;

Query OK,0 rows affected (0.00sec)

mysql> show variables like ‘%time_zone%’;+——————+——–+

| Variable_name | Value |

+——————+——–+

| system_time_zone | |

| time_zone | +08:00 |

+——————+——–+

2 rows in set, 1 warning (0.00sec)

或者通过修改my.cnf配置文件来修改时区:

# vim /etc/my.cnf 在[mysqld]区域中加上default-time_zone = ‘+8:00’#/etc/init.d/mysqld restart 重启mysql使新时区生效

我遇到的问题是:在数据库中select now(); 返回的时间正常,但是jdbc查询出的时间比实际时间要早8小时:

解决办法是jdbc连接的url中配置的时区参数:&serverTimezone=GMT%2B8

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210175.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午8:08
下一篇 2026年3月19日 上午8:08


相关推荐

  • 分组卷积(图文并茂)

    分组卷积(图文并茂)分组卷积 Groupconvolu 是将输入层的不同特征图进行分组 然后采用不同的卷积核再对各个组进行卷积 这样会降低卷积的计算量 因为一般的卷积都是在所有的输入特征图上做卷积 可以说是全通道卷积 这是一种通道密集连接方式 channeldense 而 groupconvolu 相比则是一种通道稀疏连接方式 channelspars 1 分组卷积的矛盾 计算量使用 groupconvolu 的网络有很多 如 Xception Mo

    2026年3月18日
    2
  • slam技术前景_哄哄什么

    slam技术前景_哄哄什么原标题:牛逼哄哄的SLAM技术即将颠覆哪些领域?什么是SLAM?机器人在未知环境中,要实现智能化需要完成三个任务,第一个是定位(Localization),第二个是建图(Mapping),第三个则是随后的路径规划(Navigation)。之前地平线的高翔博士用这样一句话概括SLAM的释义。不过实际生活中的SLAM都是和激光雷达或者单目/双目摄像头结合的形式出现在我们面前的,有时甚至跟更多的…

    2022年9月30日
    9
  • JavaScript中常见的十种排序方法

    JavaScript中常见的十种排序方法注 文中所有示例均执行升序排列一 冒泡排序原理 比较相邻元素 如果前者大于后者 则调换位置 对每个元素执行 此时最后一个元素将是最大值 重复上述操作至排序完成 代码示例 functionsort arr for vari 0 i lt arr length i for varj 0 j lt arr length

    2026年3月18日
    2
  • 动态数组是啥

    动态数组是啥动态数组是什么?什么情况用动态数组?长度可变那么如何定义呢?

    2025年6月1日
    7
  • 逆向分析学习入门教程

    逆向分析学习入门教程转在于逆向工厂(一):从helloworld开始前沿从本篇起,逆向工厂带大家从程序起源讲起,领略计算机程序逆向技术,了解程序的运行机制,逆向通用技术手段和软件保护技术,更加深入地去探索逆向的魅力。一、程序如何诞生?1951年4月开始在英国牛津郡哈维尔原子能研究基地正式投入使用的英国数字计算机“哈维尔·德卡特伦”,是当时世界上仅有的十几台电脑之一。图中两人手持的“纸带”即是早期的程序,纸带通过是否

    2022年6月19日
    43
  • GPIB-VC编程

    GPIB-VC编程CompilingandLinkingVISAPrograms(C/C++)Thissectionprovidesasummaryofimportantcompiler-specificconsiderationswhendevelopingWin32applications.1.LinkingtoVISALibrariesYourapp

    2022年6月26日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号