Docker stellt eine MySQL-Remoteverbindung bereit, um 2003-Probleme zu lösen

Docker stellt eine MySQL-Remoteverbindung bereit, um 2003-Probleme zu lösen

Herstellen einer Verbindung mit MySQL

Hier verwende ich Navicat für die Remoteverbindung. Bevor Sie eine Verbindung zu MySQL herstellen, müssen Sie den Firewall-Port öffnen oder die Firewall schließen.

Offene Ports

Firewall-Befehl --add-port=3306/tcp --permanent
// --permanent ist dauerhaft wirksam. Ohne diesen Parameter wird es nach einem Neustart ungültig.
Firewall-Befehl --reload
// Neu laden

Firewall deaktivieren

systemctl stoppe Firewall
systemctl aktiviert iptables
// Boot einrichten
Firewall-Befehl --reload
// Neu laden

Grundlegende Verwendung von Firewalld

Start: systemctl start firewalld

Zum Herunterfahren: systemctl stop firewalld

Überprüfen Sie den Status: systemctl status firewalld

Beim Booten deaktivieren: systemctl disable firewalld

Beim Booten aktivieren: systemctl enable firewalld

Systemctl ist das Haupttool im Service-Management-Tool von CentOS7, das die Funktionen des vorherigen Dienstes und von chkconfig integriert.

Starten Sie einen Dienst: systemctl start firewalld.service

Einen Dienst beenden: systemctl stop firewalld.service

Starten Sie einen Dienst neu: systemctl restart firewalld.service

Den Status eines Dienstes anzeigen: systemctl status firewalld.service

Aktivieren Sie beim Booten einen Dienst: systemctl enable firewalld.service

Deaktivieren Sie einen Dienst beim Booten: systemctl disable firewalld.service

Prüfen Sie systemctl is-enabled firewalld.service

Zeigen Sie die Liste der aktivierten Dienste an: systemctl list-unit-files|grep enabled

Zeigen Sie die Liste der Dienste an, die nicht gestartet werden konnten: systemctl --failed

Firewalld-cmd konfigurieren

Überprüfen Sie die Version: firewall-cmd --version

Hilfe anzeigen: firewall-cmd --help

Status anzeigen: firewall-cmd --state

Alle offenen Ports anzeigen: firewall-cmd --zone=public --list-ports

Firewall-Regeln aktualisieren: firewall-cmd --reload

Zoneninformationen anzeigen: firewall-cmd --get-active-zones zones

Überprüfen Sie firewall-cmd --get-zone-of-interface=eth0

Alle Pakete ablehnen: firewall-cmd --panic-on

Den Denial-Status aufheben: firewall-cmd --panic-off

Überprüfen Sie, ob es abgelehnt wird: firewall-cmd --query-panic

Ergänzung: Docker-Bereitstellung MySQL-Remote-Verbindungslösung 1251

Grund:

MySQL 8.0 verwendet standardmäßig den Authentifizierungsmechanismus caching_sha2_password und der Client unterstützt die neue Verschlüsselungsmethode nicht.

Lösung:

Ändern Sie die Verschlüsselungsmethode des Benutzers (Root).

Schritt:

1. Geben Sie den MySQL-Container ein

[root@localhost ~]# docker exec -it javakfmysql bash ## javakfmysql ist der Alias ​​des Containers, Sie können stattdessen auch die Container-ID verwenden

2. Melden Sie sich bei MySQL an

root@e285125c99d6:/#mysql -u root -p

3. Benutzerkonfigurationselemente festlegen

Benutzerinformationen anzeigen

mysql> wähle Host, Benutzer, Plugin, Authentifizierungszeichenfolge aus mysql.user aus; 
+-----------+------------------+-------------------------------------+---------------------------------------------------------+
| Host | Benutzer | Plugin | Authentifizierungszeichenfolge |
+-----------+------------------+-------------------------------------+---------------------------------------------------------+
| % | root | caching_sha2_password | $A$005$HF7;krfwhkKHp5fPenQm4J2dm/RJtbbyjtCUVdDCcboXQw3ALxsif/sS1 |
| localhost | mysql.infoschema | caching_sha2_password | $A$005$Dies ist eine Kombination aus gültigem Passwort und Passwort, die NIEMALS verwendet werden darf |
| localhost | mysql.session | caching_sha2_password | $A$005$Dies ist eine Kombination aus gültigem Passwort und Passwort, die NIEMALS verwendet werden darf |
| localhost | mysql.sys | caching_sha2_password | $A$005$Dies ist eine Kombination aus gültigem Passwort und Passwort, die NIEMALS verwendet werden darf |
| lokaler Host | root | mysql_native_password | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+------------------+-------------------------------------+---------------------------------------------------------+

Hinweis: Host ist %, was bedeutet, dass es keine Einschränkung hinsichtlich der IP-Adresse gibt. localhost bedeutet, dass die lokale Maschine ein anderes Plug-In als mysql_native_password verwendet.

Ändern der Verschlüsselungsmethode

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; ### 123456 MySQL-Anmeldekennwort, Berechtigungen leeren;

Überprüfen Sie dann die Benutzerinformationen

mysql> wähle Host, Benutzer, Plugin, Authentifizierungszeichenfolge aus mysql.user aus;
+-----------+------------------+-------------------------------------+---------------------------------------------------------+
| Host | Benutzer | Plugin | Authentifizierungszeichenfolge |
+-----------+------------------+-------------------------------------+---------------------------------------------------------+
| % | root | mysql_native_password | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| localhost | mysql.infoschema | caching_sha2_password | $A$005$Dies ist eine Kombination aus gültigem Passwort und Passwort, die NIEMALS verwendet werden darf |
| localhost | mysql.session | caching_sha2_password | $A$005$Dies ist eine Kombination aus gültigem Passwort und Passwort, die NIEMALS verwendet werden darf |
| localhost | mysql.sys | caching_sha2_password | $A$005$Dies ist eine Kombination aus gültigem Passwort und Passwort, die NIEMALS verwendet werden darf |
| lokaler Host | root | mysql_native_password | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+------------------+-------------------------------------+---------------------------------------------------------+
5 Zeilen im Satz (0,00 Sek.)

Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Sollten dennoch Fehler oder unvollständige Überlegungen vorliegen, freue ich mich über eine Korrektur.

Das könnte Sie auch interessieren:
  • Docker ermöglicht sicheren TLS-Remoteverbindungszugriff
  • So richten Sie eine VSCode-Remoteverbindung zum Server-Docker-Container ein
  • Detailliertes Beispiel für eine Remote-Verbindung zu Docker mithilfe einer TLS-verschlüsselten Kommunikation
  • Tutorial zur Installation von MySQL mit Docker und zur Implementierung einer Remote-Verbindung
  • Docker stellt MySQL bereit, um Beispielcode für eine Remoteverbindung zu erreichen
  • Detaillierte Erläuterung der Remote-Verbindungseinstellungen des Docker-Daemons
  • Implementierungsbeispiel für Docker-Remoteverbindungseinstellungen

<<:  Beispielcode zum Implementieren eines gleichbreiten Layouts auf verschiedene Arten mithilfe von CSS

>>:  Erste Schritte mit der Konvertierung von Vue in React

Artikel empfehlen

Lösung für das Problem der MySQL-Transaktionsparallelität

Ich bin während der Entwicklung auf ein solches P...

Wird der veraltete Docker durch Podman ersetzt?

Das Kubernetes-Team hat vor Kurzem angekündigt, d...

Detaillierte Schritte zum Ausführen eines Springboot-Projekts in Linux Docker

Einführung: Die Konfiguration von Docker, auf dem...

Das Frontend erstellt und ändert CAD-Grafikdetails über JavaScript

Inhaltsverzeichnis 1. Aktuelle Situation 2. CAD-G...

Grundlegendes Lernen und Erfahrungsaustausch zu MySQL-Transaktionen

Eine Transaktion ist eine logische Gruppe von Ope...

Docker-Tutorial: Container verwenden (einfaches Beispiel)

Wenn Sie mit Docker noch nicht vertraut sind, seh...

Detaillierte Schritte zum Starten des Django-Projekts mit nginx+uwsgi

Wenn wir ein Webprojekt mit Django entwickeln, wi...

Detaillierte Erklärung des Vue Notepad-Beispiels

In diesem Artikelbeispiel wird der spezifische Co...

Grundlegende Referenztypen der erweiterten JavaScript-Programmierung

Inhaltsverzeichnis 1. Datum 2. RegExp 3. Original...