Vorwort Als Ahhang das Springboot-Projekt entwickelte, teilte ihm das Front-End immer mit, dass der Bestätigungscode ungültig sei. Beim lokalen Test gab es kein Problem, aber als ich mir die Datenbankzeit des Remote-Servers ansah, wow – sie war 8 Stunden zu früh. Offensichtlich war es ein MySQL-Zeitzonenproblem. In diesem Artikel wird beschrieben, wie die Zeitzone des MySQL-Containers in Docker geändert wird. Lösung Lassen Sie uns zunächst überprüfen, ob die Zeitzone der Datenbank wirklich falsch ist. Rufen Sie die MySQL-Datenbank auf und führen Sie die Anweisung aus: JETZT AUSWÄHLEN(); Gibt Daten zurück, die ungefähr diesen ähneln: mysql> JETZT AUSWÄHLEN(); +---------------------+ | JETZT() | +---------------------+ | 04.07.2020 15:46:46 | +---------------------+ 1 Zeile im Satz (0,09 Sek.) Um die aktuelle Zeitzone zu überprüfen, geben Sie den folgenden Befehl ein: VARIABLEN WIE „%time_zone%“ ANZEIGEN; Gibt Daten zurück, die ungefähr diesen ähneln: mysql> VARIABLEN WIE '%time_zone%' ANZEIGEN; +------------------+--------+ | Variablenname | Wert | +------------------+--------+ | Systemzeitzone | UTC | | Zeitzone | +00:00 | +------------------+--------+ 2 Reihen im Satz (0,12 Sek.) Wenn die zurückgegebene Zeit mehrere Stunden von Ihrer abweicht und die Zeitzone nicht stimmt (nicht +08:00), müssen Sie nach unten schauen. Methode 1: Temporäre Änderung Wenn es dringend ist, können wir diese Änderung vorübergehend vornehmen. Führen Sie den folgenden Befehl aus: GLOBALE Zeitzone festlegen = '+8:00'; Führen Sie den folgenden Befehl erneut aus, um zu überprüfen, ob das zurückgegebene Ergebnis die aktuelle Uhrzeit ist: JETZT AUSWÄHLEN(); Die erfolgreiche Änderung wird durch die Rückgabe der aktuellen Uhrzeit nachgewiesen. Der Grund, warum diese Methode „vorübergehende Änderung“ genannt wird, besteht darin, dass die Änderung nach einem Neustart von MySQL ungültig wird. Methode 2: Parameter beim Start hinzufügen Diese Methode gilt für Bedingungen, die es uns ermöglichen, einen MySQL-Container neu zu erstellen. Beim Erstellen eines Containers müssen wir einen Befehl hinzufügen, um die Zeitzone anzugeben (Eastern Time Zone 8 ist Shanghai, Sie können sie bei Bedarf in Ihre eigene Zeitzone ändern): -e TZ=Asien/Shanghai Unser vollständiger Docker-Run-Befehl sollte also lauten (nur als Referenz, Ihr Run-Befehl kann leicht anders sein): docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -e TZ=Asia/Shanghai -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0 Um den Zweck der einzelnen Parameter zu sehen, lesen Sie bitte meinen Artikel: MySQL mit Docker installieren. Methode 3: Ändern der Konfiguration im Container Rufen Sie den MySQL-Container auf, indem Sie Folgendes eingeben: Docker exec -it Container-ID Bash Ändern Sie die MySQL-Konfigurationsdatei (zwei Fälle): vim /etc/mysql/mysql.conf.d oder vim /etc/mysql/my.cnf Wenn der obige Befehl „bash: vim: Befehl nicht gefunden“ zurückgibt, lesen Sie bitte zuerst die Lösung für „Kein Vim-Befehl im Docker-Container“. Klicken Sie nach dem Aufrufen der Konfigurationsdatei auf i, um in den Bearbeitungsmodus zu wechseln und eine Zeile der Konfigurationsdatei hinzuzufügen: Standardzeitzone = '+08:00' Wie gezeigt: Hinzufügen eines Profils Wenn Sie fertig sind, drücken Sie ESC und geben Sie :wq ein, um zu speichern und zu beenden. Geben Sie dann „exit“ ein, um den Docker-Container zu verlassen. Als nächstes müssen wir den MySQL-Container neu starten. Geben Sie den folgenden Befehl ein: Docker startet Container-ID neu Bisher wurde die Zeitzonenkonfiguration erfolgreich geändert. Geben Sie nach dem Neustart den folgenden Befehl ein, um den Erfolg zu überprüfen: JETZT AUSWÄHLEN(); Wenn die zurückgegebene Zeit mit der aktuellen Zeit übereinstimmt, war die Änderung erfolgreich. Abschluss Wenn Sie es eilig haben, empfehlen wir Methode 1. Wenn Sie es nicht eilig haben, empfehlen wir Methode 2. Bitte wählen Sie die Methode aus, die Sie benötigen. Dies ist das Ende dieses Artikels zum Beheben des Zeitzonenproblems im MySQL-Container von Docker. Weitere Informationen zur Zeitzone des MySQL-Containers von Docker finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: js, um einen coolen Feuerwerkseffekt zu erzielen
>>: So sichern Sie MySQL unter Linux automatisch remote
Vorwort Wenn Bildlaufereignisse wie Scrollen und ...
In MySQL können Sie mit der REVOKE-Anweisung best...
MySQL 5.7.9 Version sql_mode=only_full_group_by P...
Was ist WSL Zitat aus der Baidu-Enzyklopädie: Das...
Unter den Anweisungen meines Vorgesetzten übernah...
1. Einleitung Vor ein paar Tagen bin ich bei der ...
Vorwort Ich habe zuvor eine Komponente im Ladesti...
Ich glaube, dass vielen Leuten, die MySQL schon l...
1. Nutzung auf höchster Ebene 1. Installieren Sie...
Der Standardbetriebsmodus von MySQL ist der Autoc...
1. Tabellenstruktur 2. Tabellendaten 3. Das Abfra...
Überblick Eine der leistungsstärksten Funktionen ...
Alle folgenden Codes stehen zwischen <head>....
1. Übersicht Ich habe viel online gesucht und fes...
Inhaltsverzeichnis 1. Schloss und Riegel 2. Wiede...