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

Implementierung der Breakpoint-Wiederaufnahme in Node.js

Vorwort Normaler Geschäftsbedarf: Hochladen von B...

Beherrschen Sie die häufig verwendeten HTML-Tags zum Zitieren von Inhalten auf Webseiten.

Verwenden Sie „blockquote“ für lange Zitate, „q“ ...

Vollständige Liste der CentOS7-Firewall-Betriebsbefehle

Inhaltsverzeichnis Installieren: 1. Grundlegende ...

5 häufig verwendete Objekte in JavaScript

Inhaltsverzeichnis 1. JavaScript-Objekte 1).Array...

So rufen Sie das Kennwort für MySQL 8.0.22 auf dem Mac ab

Neueste Version von MySQL 8.0.22 zur Kennwortwied...

So verwenden Sie Cursor-Trigger in MySQL

Cursor Die von der Auswahlabfrage zurückgegebenen...

Optimierung des MySQL Thread_Stack-Verbindungsthreads

MySQL kann nicht nur über das Netzwerk, sondern a...

So funktionieren React Hooks

Inhaltsverzeichnis 1. React Hooks vs. reine Funkt...

Eine kurze Analyse der Crontab-Aufgabenplanung in Linux

1. Erstellen Sie eine Planungsaufgabe Anweisung c...

Die große Rolle von HTML-Meta

Es gibt zwei Metaattribute: Name und http-equiv. D...

JavaScript-Beispielcode zum Ermitteln, ob eine Datei vorhanden ist

1. Geschäftsszenario Ich habe kürzlich Entwicklun...

CocosCreator implementiert Skill-Kühleffekt

CocosCreator realisiert Skill-CD-Effekt In vielen...

Zwei Möglichkeiten zum Öffnen und Schließen des MySQL-Dienstes

Methode 1: Verwenden Sie den cmd-Befehl Öffnen Si...