wake-up-neo.com

MySQL: Setzen von time_zone in der Optionsdatei my.cnf

In MySQL können Sie eine Sitzungsvariable mit dem Namen Zeitzone festlegen, um die Zeitzone zu ändern. Dies ist nützlich, z.B. wenn Sie Zeitstempel aus einem anderen Land betrachten. Hier ist ein Beispiel:

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2010-12-30 18:59:18 |
+---------------------+
1 row in set (0.00 sec)

mysql> set time_zone='Brazil/East';
Query OK, 0 rows affected (0.00 sec)

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2010-12-30 09:59:29 |
+---------------------+
1 row in set (0.00 sec)

Ist es möglich, dies in eine Optionsdatei einzufügen, z. .my.cnf?

Wenn ich es versuche, funktioniert es nicht. Alles was ich bekomme ist:

mysql: unknown variable 'time_zone=Brazil/East'
12
emx

es sollte sein

default_time_zone=Brazil/East

details: http://dev.mysql.com/doc/refman/5.5/de/server-system-variables.html#sysvar_time_zone

Optionsdateiformat = default_time_zone

15
ajreal

Ein bisschen spät, aber das könnte trotzdem hilfreich sein:

Wenn Sie die Zeitzone explizit festlegen, vergewissern Sie sich, dass Sie den richtigen Namen für die Zeitzone verwenden. Beachten Sie dabei, dass viele davon veraltet sind. Sie können https://en.wikipedia.org/wiki/List_of_tz_database_time_zones verwenden, um dies zu bestätigen.

In meinem Fall funktionierte der veraltete Zeitzonenname unter MySQL 5.7 nicht, als er in meiner Datei mysqld.cnf unter [mysqld] eingefügt wurde. Die Verwendung des neuen Zeitzonennamens und der Neustart des MySQL-Dienstes funktionierten.

Für den Benutzer @kev sollte hier America/Sao_Paulo funktionieren, anstatt Brazil/East .

0
ronan

Für MAMP habe ich default_time_zone=-03:00 unter [mysqld] in /Applications/MAMP/conf/my.cnf hinzugefügt.

Ich würde den folgenden Fehler für Brasilien/Ost erhalten, wahrscheinlich, weil er veraltet ist ( https://en.wikipedia.org/wiki/List_of_tz_database_time_zones ):

[ERROR] Fatal error: Illegal or unknown default time zone 'Brazil/East'

0
AEQ

Bearbeiten Sie Folgendes:

nano /etc/mysql/conf.d/mysql.cnf && systemctl restart mysql ; systemctl status mysql

MySQL.cnf:

[mysql]
default_time_zone=America/Vancouver

Aktuelle Zeitzonenformate finden Sie hier -> https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

0

In ~/.my.cnf:

[mysql]
init_command="SET time_zone='Brazil/East'"
0
dolmen

Ich bin nicht sicher, was sich in Xampp geändert hat, aber diese Lösung funktioniert nur, wenn Sie diese Zeile an der richtigen Stelle platzieren. Vertrauen Sie mir, ich habe es oft versucht und musste ziemlich gründlich suchen, um diese Lösung zu finden.

default-time-zone = "+00:00"

Beispiel:

read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
default-time-zone = "+00:00" <--- Place here.
log_error = "mysql_error.log"

https://community.apachefriends.org/f/viewtopic.php?f=16&t=47656

Außerdem sollten Sie sicherstellen, dass Ihre Datenbank mit den richtigen Zeitzonennamen gefüllt ist, wenn Sie "America/Los_Angeles" verwenden. Ich würde empfehlen, den Offset zu verwenden. Eigentlich würde ich empfehlen, UTC als Basis zu verwenden und dann die Zeit von diesem Zeitpunkt an für Benutzer anhand ihrer Zeitzone umzurechnen, was Ihnen später viele Kopfschmerzen erspart und Ihre Datenbank schön und einheitlich hält. Schauen Sie sich die Anleitung an, die ich unten verlinkt habe, und erläuterte sie mir sehr deutlich. Es gibt viele Möglichkeiten, es zu codieren, aber diese Vorgehensweise erspart Ihnen viele Probleme.

http://www.vertabelo.com/blog/technical-articles/the-proper-way-to-handle-multiple-time-zones-in-mysql

0
Andrew