那我们怎么修改,有两种方法,一种是临时的,一种是长久的。
一:通过sql命令临时修改
# 设置全局时区 mysql>set global time_zone = '+8:00'
Query OK, 0 rows affected (0.00 sec)
# 设置时区为东八区 mysql>set time_zone = '+8:00'
Query OK, 0 rows affected (0.00 sec)
# 刷新权限使设置立即生效 mysql>flush privileges
Query OK, 0 rows affected (0.00 sec)
mysql>show variables like '%time_zone%'
+------------------+--------+
| Variable_name | Value |
+------------------+--------+
| system_time_zone | EST |
| time_zone | +08:00 |
+------------------+--------+
2 rows in set (0.00 sec)
二:修改my.cnf实现永久修改
vi /etc/mysql/my.cnf
然后在mysqld下边的配置中添加一行:
default-time_zone = '+8:00'
然后重启mysql
service mysql restart
通过以下参数来进行时区设置:1. an absolute offset--绝对偏移量 例: alter session set time_zone = '-05:00'
2. database time zone--数据库时区 例:alter session set time_zone = dbtimezone 这是数据库默认的时区
3. os local time zone-- *** 作系统本地时区 例:alter session set time_zone = local 获得系统本地时区
4. a named region--直接用名字指定时区 例:alter session set time_zone = 'america/new_york'
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()。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)