mysql NOW() return falschen Wert in der Erwägung, dass die globalen Zeitzone eingestellt ist +00:00
seit 2 Wochen habe ich darüber gerätselt timezone Problem, alles funktioniert Prima auf meinem localhost, ABER es gibt falsche Wert auf dedicated server. Lassen Sie mich sagen, was ich bisher getan habe.
Ersten Satz globalen Zeitzone von unten Abfrage: ( Super Privileg sowohl auf localhost und server )
SET GLOBAL time_zone = '+00:00';
führen Sie nun folgenden Abfrage zu überqueren überprüfen, was getan
SELECT NOW(),@@global.time_zone AS gtz,@@session.time_zone AS stz,
TIMEDIFF(NOW(), CONVERT_TZ( NOW() , @@session.time_zone , '+00:00' ) )
AS OFFSET;
aber es zeigt verschiedene Ergebnisse auf lokale und dedizierte server
auf localhost (192.168.x.x) mysql-version : 5.5.8
+---------------------+--------+--------+----------+
| NOW() | gtz | stz | OFFSET |
+---------------------+--------+--------+----------+
| 2012-07-02 07:06:55 | +00:00 | +00:00 | 00:00:00 |
+---------------------+--------+--------+----------+
1 row in set (0.00 sec)
auf dedizierten server (182.168.x.x) mysql version :5.1.53-log
+---------------------+--------+--------+----------+
| NOW() | gtz | stz | OFFSET |
+---------------------+--------+--------+----------+
| 2012-07-02 12:37:59 | +00:00 | +00:00 | 00:00:00 |
+---------------------+--------+--------+----------+
Meine Frage ist
warum JETZT() gibt falschen Zeit ( oben IST ) in der Erwägung, dass
Zeitzone eingestellt ist +00:00 ?
Seite Hinweis :
Führe ich im folgenden-Abfrage
SHOW VARIABLES LIKE '%time%zone%';
auf localhost
+------------------+---------------------+
| Variable_name | Value |
+------------------+---------------------+
| system_time_zone | India Standard Time |
| time_zone | +00:00 |
+------------------+---------------------+
auf dem server
+------------------+---------------------+
| Variable_name | Value |
+------------------+---------------------+
| system_time_zone | GMT+5 |
| time_zone | +00:00 |
+------------------+---------------------+
tut dies das Ergebnis beeinflussen? ODER
gibt es einen bug in einer früheren version von mysql ?
bitte helfen Sie mir.
InformationsquelleAutor diEcho | 2012-07-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beim Aufruf
NOW()
(und Verwandte Funktionen), MySQL wandelt der computer-system-Uhr, die session-Zeitzone:Wenn die system-Uhr auf
12:30+05:30
und die session-Zeitzone ist+00:00
werden, ist das Ergebnis07:00
.Wenn die system-Uhr auf
17:30+05:00
und die session-Zeitzone ist+00:00
werden, ist das Ergebnis12:30
.Allerdings kann man 'Narr' MySQL zu denken, dass die system-Uhr in einer anderen Zeitzone, dass das Betriebssystem glaubt, dass durch die Verwendung der
--timezone
Kommandozeilen-argumentmysqld_safe
:17:30+10:30
und die session-Zeitzone ist+00:00
, aber MySQL gestartet wurde, in der Weise angeben, dass die system-Uhr verstanden werden sollteGMT+5
, das Ergebnis wird dasselbe sein, wie die zweite Kugel von oben.Sollten Sie daher überprüfen:
Dass die Zeitzone des system Uhr stimmt mit der Angabe in der
system_time_zone
system-variable (wenn es nicht ist, sicherzustellen, dass Sie nicht die Angabe einer--timezone
argumentmysqld_safe
und dass es keineTZ
environment-variable gesetzt, wennmysqld_safe
aufgerufen wurde);Dass die system-Uhr Berichterstattung ist die richtige Zeit in der angegebenen Zeitzone.
bieten Sie mir keine referel link für weitere Informationen. wie kann ich erreichen, meine Lösung mit den oben Lösung?
InformationsquelleAutor eggyal
Müssen Sie nur starten Sie mysqld erneut nach der änderung der Zeitzone des Systems..
Den Globalen Zeitzone von MySQL dauert Zeitzone des Systems. Wenn Sie ändern, wie Attribut-system, Sie brauchen nur ein Neustart von Mysqld.
Das ist es.
service mysql restart
für mich gearbeitet! Danke.InformationsquelleAutor Storm Young
1) Ändern Sie Ihre system-Uhrzeit und die Zeitzone, falls erforderlich.
2) Öffnen Sie die mysql-Konsole und legen Sie Ihre Zeitzone, smth like this: SET GLOBAL time_zone = "+04:00";
3) Starten Sie mysql.
InformationsquelleAutor PinkPanther_DK
habe ich getestet-
SET time_zone='+05:30'; es ist arbeiten,aber ich habe nicht die Globale Berechtigung, so dass Sie versuchen, durch Einstellung der server-Zeit +05:30 ->
SET GLOBAL time_zone = '+05:30';
InformationsquelleAutor raju