Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2353514
  • 博文数量: 276
  • 博客积分: 5998
  • 博客等级: 大校
  • 技术积分: 5175
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-24 14:43
文章分类

全部博文(276)

文章存档

2014年(25)

2013年(11)

2012年(69)

2011年(167)

2010年(4)

分类: Mysql/postgreSQL

2013-05-24 12:40:14

方法一,系统级别修改
mysql默认使用系统时区。可以通过修改系统时区修改mysql的时区,修改后需要重启数据库。
修改系统时区的方法(以上海时区为例)
rm -rf  /etc/localtime 
cp  /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 
date -s 14:12:00 
clock –w


如果修改当前时区为utc
rm -rf  /etc/localtime 
cp /usr/share/zoneinfo/UTC  /Asia/Shanghai /etc/localtime 

重启数据库。

方法二、数据库级别修改
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()。
阅读(8415) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~