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

nuxt.js Konfiguration mehrerer Umgebungsvariablen

Inhaltsverzeichnis 1. Einleitung 2. Szenario 3. S...

js, um einen Karusselleffekt zu erzeugen

Ich denke, das Karussell ist ein relativ wichtige...

js einfacher und grober Beispielcode zum Veröffentlichen und Abonnieren

Was ist Publizieren/Abonnieren? Lassen Sie mich I...

Nodejs konvertiert JSON-String in JSON-Objekt-Fehlerlösung

Wie konvertiere ich eine JSON-Zeichenfolge in ein...

Implementieren eines binären Suchbaums in JavaScript

Die Implementierung des Suchbinärbaums in JavaScr...

JavaScript zum Erreichen eines einfachen Message Board-Falls

Verwenden Sie Javascript, um ein Message Board-Be...

Eine SQL-Anweisung schließt die MySQL-Deduplizierung ab und behält eine

Als ich vor einigen Tagen an einer Anforderung ar...

Ubuntu 18.04 installiert MySQL 5.7.23

Ich habe MySQL zuvor problemlos in Ubuntu 16.04 i...

JavaScript implementiert die H5-Goldmünzenfunktion (Beispielcode)

Heute habe ich eine Aktivität für einen roten Ums...

Zusammenfassung der sieben MySQL JOIN-Typen

Bevor wir beginnen, erstellen wir zwei Tabellen, ...