MySQL中的时区设置方式

 更新时间:2023年11月02日 09:32:07   作者:与物为春  
这篇文章主要介绍了MySQL中的时区设置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

一、通过Navicat工具

进入mysql数据库,在查询编辑器中输入:

可查看全局的时区设置和会话的时区设置

  • global.time_zone负责java连接数据库时的时区设置
  • session.time_zone负责Navicat客户端连接数据库时的时区设置
select @@global.time_zone,@@session.time_zone;

System代表采用系统时区

  • CST 是一种比较乱的时区,它包括了4个时区
  • CST可视为美国、澳大利亚、古巴或中国的标准时间。

同时代表了下面4个时区:

CST Central Standard Time(USA)UT-6:00
CST Central Standard Time(Australia)UT9:30
CST China Standard Time UT8:00
CST Cuba Standard Time UT-4:00

由于世界各国家与地区经度不同,地方时也有所不同,因此会划分为不同的时区。

正式的时区划分包括24个时区,每一时区由一个英文字母表示。

每隔经度15°划分一个时区,有一个例外,每个时区有一条中央子午线;

例如,GMT属于“z”区,因此其时间后通常添加后缀“Z”

show variables like '%time_zone%';

二、在查询编辑器中直接输入以下命令

方法1:使用命令

(优点:不需要重启MySQL服务,缺点:一旦MySQL服务被重启,设置就会消失) 

set global time_zone = ‘+8:00';  

这个可以修改mysql全局时区为北京时间,也就是我们所在的东8区

set time_zone = ‘+8:00';

修改当前会话时区

flush privileges;   

使之立即生效。

方法2:修改my.ini配置文件

(优点:永久保存设置,缺点:需重启MySQL服务)

修改配置文件 /etc/my.cnf

[mysqld]
default-time_zone = '+8:00'

三、查询时间

检验时间对不对 (验证时区,这行命令可以检测session.time_zone是否正确配置)

select now();

没有用的话重启mysql试一下

systemctl stop mysqld.service
systemctl start mysqld.service

备注:

在项目中的,也要及时更改 java中的时区

// serverTimezone可以设置为北京时间GMT%2B8、上海时间Asia/Shanghai或者香港时间Hongkong
url: jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=true

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

最新评论