我如何确保我的服务器和MYSQL具有相同的时区?

因为当我在Python脚本中创build一个时间..我希望它匹配MYSQL的时间。

我如何使他们两个太平洋时间?

你没有提到一个操作系统,但是对于RedHat派生它应该是system-config-time来设置你的时区。 对于MySQL阅读这个URL:

http://dev.mysql.com/doc/refman/5.1/en/mysql-tzinfo-to-sql.html

总结一下,我不得不从操作系统加载时区:

 mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql 

mysqld部分将以下行添加到“/ etc / my.cnf`中,并重新启动:

 default-time-zone='Pacific/Honolulu' 

鲍勃是你的叔叔:

 mysql> SELECT @@global.time_zone, @@session.time_zone; +--------------------+---------------------+ | @@global.time_zone | @@session.time_zone | +--------------------+---------------------+ | Pacific/Honolulu | Pacific/Honolulu | +--------------------+---------------------+ 1 row in set (0.00 sec) 

我试了下面的testing脚本:

 import MySQLdb import os import re import time import datetime from datetime import date, datetime, time db = 'test' dbhost = 'localhost' dbport = 3306 dbuser = 'test' dbpass = 'test' start_time = datetime.today() con = MySQLdb.connect(host=dbhost, port=dbport, user=dbuser, passwd=dbpass, db=db) cursor = con.cursor() sql = "SELECT current_time;" cursor.execute(sql) list = cursor.fetchall() con.close() print "------------------------------------------------------------------------------------" print "Python time is: " print start_time print print "MYSQL time is:" for result in list: print result[0] print "-- 

————————————————– ——————————–”

其中输出:

 ------------------------------------------------------------------------------------ Python time is: 2010-03-30 22:29:19.358184 MYSQL time is: 22:29:19 ------------------------------------------------------------------------------------ 

你有时区表填入:

 mysql> use mysql; mysql> select count(*) from time_zone; +----------+ | count(*) | +----------+ | 1678 | +----------+ 1 row in set (0.00 sec) 

在我的服务器上,我将time_zone设置为“SYSTEM”,如下所述:

http://dev.mysql.com/doc/refman/5.0/en/time-zone-support.html

全局time_zone系统variables表示服务器当前正在运行的时区.time_zone的初始值为“SYSTEM”,表示服务器时区与系统时区相同。