Como posso ter certeza de que AMBOS o meu servidor e MYSQL têm o mesmo fuso horário?

1

Porque quando eu crio um tempo em scripts Python ... eu quero que ele combine o tempo do MYSQL.

Como faço com que ambos sejam pacíficos?

    
por Alex 31.03.2010 / 08:17

2 respostas

1

Você não menciona um sistema operacional, mas para o RedHat derivado, deve ser system-config-time para configurar seu fuso horário. Para o MySQL, leia este URL:

link

Para resumir, tive que carregar os fusos horários do SO:

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

Adicione a seguinte linha a '' '/etc/my.cnf' na seção mysqld e reinicie:

default-time-zone='Pacific/Honolulu'

E o Bob é o seu tio:

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)

Eu tentei o seguinte script de teste:

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 "--

----------------------------------------------- ----------------------------------- "

qual saída:

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

MYSQL time is:
22:29:19
------------------------------------------------------------------------------------

Você tem a tabela de fuso horário preenchida:

mysql> use mysql;
mysql> select count(*) from time_zone;
+----------+
| count(*) |
+----------+
|     1678 | 
+----------+
1 row in set (0.00 sec)
    
por 31.03.2010 / 09:32
0

Nos meus servidores, deixo time_zone definido como "SYSTEM" como descrito aqui:

link

The global time_zone system variable indicates the time zone the server currently is operating in. The initial value for time_zone is 'SYSTEM', which indicates that the server time zone is the same as the system time zone.

    
por 31.03.2010 / 09:36