Назад | Перейти на главную страницу

Как мне убедиться, что на моем сервере и на MYSQL один и тот же часовой пояс?

Потому что, когда я создаю время в скриптах Python ... я хочу, чтобы оно соответствовало времени 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

Добавьте следующую строку в `` / etc / my.cnf` в mysqld раздел и перезапустите:

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)

Я попробовал следующий тестовый сценарий:

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 установите "СИСТЕМА", как описано здесь:

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

Глобальная системная переменная time_zone указывает часовой пояс, в котором в данный момент работает сервер. Начальным значением для time_zone является «SYSTEM», что указывает на то, что часовой пояс сервера совпадает с часовым поясом системы.