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
Ein Textfeld mit Dropdown-Liste ermöglicht es Ben...
Unter Graustufenfreigabe versteht man eine Freiga...
Vorwort Die Zeichenfolgentypen der MySQL-Datenban...
Wenn wir eine Hintergrundfarbe mit Farbverlauf er...
Dieser Artikel beschreibt, wie Sie mit der lokale...
Der MySQL-Abfragecache ist standardmäßig aktivier...
1. Installieren Sie weniger Abhängigkeiten: npm i...
1. Konzeptanalyse 1: UE User Experience <br /&...
Lied: SimSun Fett: SimHei Microsoft YaHei: Micros...
So ändern Sie den Bild-Hyperlink, wenn Sie mit der...
In diesem Artikel wird das kostenlose MySQL-Insta...
Diese Woche war so arbeitsreich wie ein Krieg. Ic...
Inhaltsverzeichnis Nehmen Sie Todolist als Beispi...
Der spezifische Code lautet wie folgt: <!DOCTY...
Inhaltsverzeichnis 1. Kernbefehle 2. Allgemeine B...