如何修改mysql url链接指定时区

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何修改mysql url链接指定时区相关的知识,希望对你有一定的参考价值。

1。在mysql的命令模式下使用
mysql > select CURTIME();

mysql > select now();
看当前时间是否正确,可以看到mysql当前使用的是那一个时区的时间。
2。在mysql命令行中更改时区
mysql > SET time_zone = '+8:00'; # 此为北京时,我们所在东8区
mysql> flush privileges; # 立即生效
此时mysql时区已更改正确,与系统时区都使用为 Shanghai时间了。
#### 这种方法好像只能在终端上使用,退出终端后时间又会变成原来的,看来只能重启mysql了。
3。重启mysql也应没有问题,此时mysql会主动读取系统时间。
方法二:
如果mysql数据库可以重启,直接重启,mysql应可以立即主动读取系统时间,如果不行则更改mysql的配置文件(mysql.cnf)
在my.cnf的 [mysqld]区域中加上
default-time_zone = '+8:00' #此为北京时。
补充:
如果想临时解决时间显示问题,可以用php或其他语言动态修改下mysql的时区。
具体方法:
在mysql_connect()下使用mysql_query("SET time_zone = '+8:00'")。
这样可以在保证你不重启的情况下改变时区。但是mysql的某些系统函数还是不能用如:now()。
参考技术A 1。在mysql的命令模式下使用
mysql > select CURTIME();

mysql > select now();
看当前时间是否正确,可以看到mysql当前使用的是那一个时区的时间。
2。在mysql命令行中更改时区
mysql > SET time_zone = '+8:00'; # 此为北京时,我们所在东8区
mysql> flush privileges; # 立即生效
此时mysql时区已更改正确,与系统时区都使用为 Shanghai时间了。
#### 这种方法好像只能在终端上使用,退出终端后时间又会变成原来的,看来只能重启mysql了。
3。重启mysql也应没有问题,此时mysql会主动读取系统时间。
方法二:
如果mysql数据库可以重启,直接重启,mysql应可以立即主动读取系统时间,如果不行则更改mysql的配置文件(mysql.cnf)
在my.cnf的 [mysqld]区域中加上
default-time_zone = '+8:00' #此为北京时。
补充:
如果想临时解决时间显示问题,可以用php或其他语言动态修改下mysql的时区。
具体方法:
在mysql_connect()下使用mysql_query("SET time_zone = '+8:00'")。
这样可以在保证你不重启的情况下改变时区。但是mysql的某些系统函数还是不能用如:now()。

MySQL修改时区

以下记录修改mysql时区的几种方法。

具体:
方法一:通过mysql命令行模式下动态修改
1.1 查看mysql当前时间,当前时区

> select curtime();   #或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.00 sec)
#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;  #立即生效

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

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

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

 
方法三:如果不方便重启mysql,又想临时解决时区问题,可以通过java或其他语言在初始化mysql时初始化mysql时区
这里,以java为例,在指定jdbc url为 jdbc:mysql://61.50.111.214:56723/pre?serverTimezone=GMT%2B8。

这样可以在保证你不重启的情况下改变时区。但是mysql的某些系统函数还是不能用如:now()。

 

以上是关于如何修改mysql url链接指定时区的主要内容,如果未能解决你的问题,请参考以下文章

如何修改Linux时区时间

Linux中如何查看修改系统的时间和时区

如何在 SqlAlchemy / Mysql 中存储时区感知日期时间值?

dbeaver修改时间合适

MySQL时区更改?

Linux服务器怎么修改时区和时间