serverTimezone时区设置

这篇具有很好参考价值的文章主要介绍了serverTimezone时区设置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

标准配置

无论是使用5.#数据库还是8.#版本数据库,只要jdbc驱动使用的是8.#那么我们就需要考虑数据库时区问题,否则就会报时区错误,标准配置代码如下:

# mysql
jdbc.username = root
jdbc.url = jdbc:mysql://localhost:3306/hospital?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
jdbc.password = 123456
jdbc.driver = com.mysql.cj.jdbc.Driver
其他配置参考
#北京东八区
serverTimezone=GMT%2B8
#上海时区
serverTimezone=Asia/Shanghai
问题根源

MySQL8.x的jdbc升级了,增加了时区(serverTimezone)属性,并且不允许为空。如果我们不手动指定serverTimezone属性,那么默认采用UTC时间

UTC是什么时区
不属于任意时区 ,协调世界时间, 又称世界统一时间,世界标准时间,国际协调时间,简称UTC,UTC时间会比北京时间少8小时, 所以数据库连接会直接出现时区错误。

地球是自西向东自转,东边比西边先看到太阳,东边的时间也比西边的早。东边时刻与西边时刻的差值不仅要以时计,而且还要以分和秒来计算,这给人们带来不便。
为了克服时间上的混乱,1884年在华盛顿召开的一次国际经度会议(又称国际子午线会议)上,规定将全球划分为24个时区(东、西各12个时区)。规定英国(格林尼治天文台旧址)为中时区(零时区)、东1—12区,西1—12区。每个时区横跨经度15度,时间正好是1小时。最后的东、西第12区各跨经度7.5度,以东、西经180度为界。每个时区的中央经线上的时间就是这个时区内统一采用的时间,称为区时,相邻两个时区的时间相差1小时。

例如,中国东8区的时间总比泰国东7区的时间早1小时,而比日本东9区的时间晚1小时。因此,出国旅行的人,必须随时调整自己的手表,才能和当地时间相一致。凡向西走,每过一个时区,就要把表拨慢1小时(比如2点拨到1点);凡向东走,每过一个时区,就要把表拨快1小时(比如1点拨到2点)。并且规定英国(格林尼治天文台旧址)为本初子午线,即零度经线。
servertimezone=gmt%2b8,MySQL8.*开发指南,数据库,mysql,java
正因为这个原因, 我们本地安装使用MySQL的时候默认走本地的时间,而连接默认使用UTC, 所以产生了时差, 导致数据库连接不成功。文章来源地址https://www.toymoban.com/news/detail-568321.html

到了这里,关于serverTimezone时区设置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL8 设置自动创建时间和自动更新时间

    业务场景: 1、在数据库表中的数据,要求记录每一条新增数据的创建时间,时间格式要求明确至:年月日:时分秒。 2、在数据库表中的数据,要求记录每一条更新数据的更新时间,时间格式要求明确至:年月日:时分秒。 功能实现: 1、为每张业务表添加create_time 和updat

    2023年04月08日
    浏览(45)
  • mysql(八)docker版Mysql8.x设置大小写忽略

    Mysql 5.7设置大小写忽略可以登录到Docker内部,修改/etc/my.cnf添加lower_case_table_names=1,并重启docker使之忽略大小写。但MySQL8.0后不允许这样,官方文档记录: lower_case_table_names can only be configured when initializing the server. Changing the lower_case_table_names setting after the server is initialized is pr

    2024年01月19日
    浏览(57)
  • 解决mysql8.0 lower_case_table_names 大小写敏感设置问题

    lower_case_table_names=1 表示 mysql 是不区分大小写的 lower_case_table_names=0 表示 mysql 是区分大小写的 根据网上资料得知mysql8.0之后,lower_case_table_names 配置必须在安装好 MySQL 后,初始化 mysql 配置时才有效。一旦 mysql 启动后,再设置是无效的,而且启动报错。 需要重新初始化MySQL数据

    2024年02月15日
    浏览(45)
  • mysql8.0及以上my.cnf设置lower_case_table_names=1无法启动

    今天装了Mysql,忙活了一下午终于装完了可以远程连接了,想着Mysql的大小写区分太麻烦就在/etc/my.cnf里面加了一句lower_case_table_names=1,结果重启数据的时候就报错了如下: 查了老半天,各种说法都有,给权限啊,添加路径什么的,我以为是我用了一会,改了什么数据文件什么

    2024年02月12日
    浏览(42)
  • 【数据库】时区及JDBC的时区设置

    JDBC连接时有个TimeZone配置,这玩意到底有用吗?我是使用Postgresql和Mysql两个数据库验证的。结果如下: 数据库 部署方式 版本 JDBC连接TimeZone参数 JDBC连接serverTimezone参数 总结 Mysql docker 8.0 没用 有用,会使用客户端时区与设置的参数时区比较,并返回客户端时区对应的时间,详

    2024年02月06日
    浏览(39)
  • docker容器设置时区

    1、 在dockerfile中设置镜像时区 2、 创建容器时设置时区 3、进入容器进行设置 docker exec -it 容器名 /bin/bash rm /etc/localtime ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 3、 通过传递环境变量改变容器时区 适用于基于 Debian 基础镜像, CentOS 基础镜像 制作的 Docker 镜像 不适用于基于 A

    2024年02月05日
    浏览(42)
  • Docker之 Dockerfile 时区设置

    通过Dockerfile 文件可以编译镜像,但是在docker 容器里面经常会遇到时区设置问题,在此做个总结。 例1: Dockerfile 文件: 时区设置: 例2: Dockerfile 文件: 时区设置: 例3: Dockerfile 文件: 时区设置: 对于linux ln 命令不熟的小伙伴可以参考此文 :Linux 操作命令之 ln 命令

    2024年02月14日
    浏览(42)
  • 如何在 Ubuntu 中更改时区设置

    在使用 Ubuntu(以18代lts为例)的过程中,我们可能会遇到时区设置与我们所在位置不匹配的情况。本文将介绍如何更改 Ubuntu 18 的时区设置,确保我们的系统显示准确的本地时间。 一、我们打开终端。我们可以使用快捷键  Ctrl + Alt + T  打开终端,或者在应用程序菜单中搜索

    2024年01月19日
    浏览(72)
  • Linux CentOS7设置时区

    在Linux系统中,默认使用的是UTC时间。 即使在安装系统的时候,选择的时区是亚洲上海,Linux默认的BIOS时间(也称:硬件时间)也是UTC时间。 在重启之后,系统时间会和硬件时间同步,如果两者不一致,会以硬件时间为标准进行时间的校准。所以,之前设置的时区和时间就失

    2024年02月04日
    浏览(43)
  • jenkin设置定时构建及时区修改

    1)启动 Jenkins 后在首页点击\\\"开始创建一个新任务\\\"。 2)输入任务名称,选择自由风格,点击“确定”。 1) 任意输入描述,然后勾选\\\"丢弃旧的构建\\\", 在\\\"保持构建的最大个数中\\\"输入 3。 1)勾选\\\"参数化构建过程\\\",选择添加\\\"字符参数\\\" 2)设置参数名称、默认值和描述 1)在\\\"构

    2023年04月22日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包