mysql 时区设定_mysql时区查看与设置

本文介绍了如何查看和设置MySQL数据库的时区。首先展示了如何使用`show variables like '%time_zone%'`命令查看系统和会话时区,然后讨论了`system_time_zone`和`time_zone`的区别。接着,提供了通过命令行动态修改时区的方法,以及通过修改配置文件永久改变时区的步骤,包括在Windows的my.ini和Linux的my.cnf中添加`default-time_zone`设置,并给出重启MySQL服务器的命令。
摘要由CSDN通过智能技术生成

一.查看数据库时区

show variables like'%time_zone';

mysql> show variables like "%time_zone";+------------------+--------+

| Variable_name | Value |

+------------------+--------+

| system_time_zone | CEST |

| time_zone | SYSTEM |

+------------------+--------+

1.全局参数system_time_zone

系统时区,在MySQL启动时会检查当前系统的时区并根据系统时区设置全局参数system_time_zone的值。

system_time_zone的值根据当前系统的不同会有所不同,此处测试时系统时间为CEST时间,所以值为CEST

查看当前的操作系统的时区

## 使用date命令

date+"%Z %z"    //查看当前操作系统的时区date-R

[vagrant@localhost ~]$ date -R

Wed,17 Jun 2020 10:48:14 +0200[vagrant@localhost~]$ date +"%Z %z"CEST+0200

CEST表示在mysql启动时,系统的时间为CEST

CEST为欧洲中部夏令时间,英文全名: Central European Summer Time

2.全局参数time_zone

用来设置每个连接会话的时区,默认为system时,使用全局参数system_time_zone的值。我们需要修改的就是time_zone的值

SYSTEM 表示time_zone默认使用system_time_zone的时区,此处即CEST

个人思路

因为my.cnf中默认没有设置default-time_zone,所以time_zone默认为system,即system_time_zone的值,

而system_time_zone的值为mysql启动时的操作系统的时区,所以个人认为可以通过提前设置操作系统的时区来决定mysql的时区

二.设置数据库时区

1.通过mysql命令行模式下动态修改,这种修改只在当前的mysql启动状态生效,如果mysql重启,则恢复到my.ini的设置状态

set global time_zone = '+8:00';

FLUSH PRIVILEGES;

再查看mysql的时区设置如下(需要退出mysql后,再重新登陆mysql,否则time_zone的结果可能不变,仍为SYSTEM)

mysql> show variables like "%time_zone";+------------------+--------+

| Variable_name | Value |

+------------------+--------+

| system_time_zone | CEST |

| time_zone | +08:00 |

+------------------+--------+

2.通过修改配置文件来修改时区,这种修改永久生效,即使mysql重启也一样有效

windows系统中配置文件为my.ini。linux系统中配置文件为/etc/my.cnf

在[mysqld]的下面添加或者修改如下内容

default-time_zone = '+8:00'

修改完配置文件后需要重启mysql服务器,

linux系统中服务器重启命令如下

systemctl restart mysqld.service

my.cnf的修改后的内容如下所示

# For advice on how to change settings please see

# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html

[mysqld]

#

# Remove leading # andset to the amount of RAM forthe most important data

# cachein MySQL. Start at 70% of total RAM for dedicated server, else 10%.

# innodb_buffer_pool_size=128M

#

# Remove leading # to turn on a very important data integrity option: logging

# changes to the binary log between backups.

# log_bin

#

# Remove leading # toset options mainly useful forreporting servers.

# The server defaults are fasterfortransactions and fast SELECTs.

# Adjust sizesasneeded, experiment to find the optimal values.

# join_buffer_size=128M

# sort_buffer_size=2M

# read_rnd_buffer_size=2M

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sockdefault-time_zone = '+9:00'# Disabling symbolic-links isrecommended to prevent assorted security risks

symbolic-links=0# Recommendedinstandard MySQL setup

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值