Windows Navicat stellt eine Verbindung zu Dockers MySQL her und meldet Fehler 2003, 10060 „Unbekannter Fehler“

1. Hintergrund

Vorher habe ich Docker installiert und den MySQL-Container ausgeführt. Ich habe auch Navicat verwendet, um im Docker eine Verbindung zu MySQL herzustellen und eine Datenbank zu erstellen. Ich habe Windows für eine Weile nicht mehr verwendet und bin zu MacOS gewechselt. Dann bin ich zum Windows-Computer zurückgekehrt und habe Navicat gefunden. Das Die Datenbank kann nicht verbunden werden. Der Fehler-Screenshot sieht wie folgt aus.

(Da mein Problem gelöst wurde, kann ich das Fehlerbild nicht finden. Dieses Bild wurde von jemand anderem kopiert, um den Fehler zu reproduzieren
.)Fügen Sie hier eine Bildbeschreibung ein

2. Was habe ich versucht?

  1. Ich betrete den Container mitmysql -uroot -pEs wurde festgestellt, dass die Anmeldung bei MySQL möglich ist, die Verwendung einer externen Verbindung zu Docker MySQL jedoch nicht möglich ist, sodass vermutet wird, dass das Problem selbst nicht im Container liegt.
  2. Die meisten von Baidu im Internet bereitgestellten Lösungen bestehen darin, sich über die Konsole bei MySQL anzumelden, zu überprüfen, ob der Root-Benutzer % ist (alle IP-Verbindungen sind zulässig), und dann die Berechtigungen zu konfigurieren, das Kennwort zu ändern und die Berechtigungen zu aktualisieren , obwohl ich weiß, dass es höchst unwahrscheinlich ist. Um das Problem zu lösen, habe ich es noch einmal versucht, aber das Endergebnis war tatsächlich ungelöst.
  3. Dann sah ich im Internet, dass ich versucht hatte, die IP der Docker-Maschine zu überprüfen (da mein Windows ein Linux simulierte, schien es WLS oder so zu heißen, und es dann Docker Desktop zur Verwendung zur Verfügung stellte), und ich gab dies ein Linux Der Computer überprüft seine IP über ifconfig und versucht, die IP-Adresse als diese IP in Navicat einzugeben, aber es funktioniert immer noch nicht! Zu diesem Zeitpunkt war ich bereits voller Schimpfwörter~
  4. Ich habe es später nicht mehr geglaubt, also habe ich die Portzuordnung noch einmal überprüft und festgestellt, dass tatsächlich 3306 der externen 3306 zugeordnet war. Ich habe es nicht mehr geglaubt. Kann ich Ihren ursprünglichen MySQL-Container nicht schließen und ihn erneut ausführen? Dann ich habe es geschickt verwendet. Eine Reihe von Befehlen (ohne Berücksichtigung des Mount-Verzeichnisses):
docker run -p 3306:3306 --name mysql8 -e MYSQL_ROOT_PASSWORD=123456  -d mysql

Zu diesem Zeitpunkt stellte ich fest, dass der Container nicht ausgeführt werden konnte. Ich war überrascht ~
die Fehlermeldung lautete ungefähr wie folgt:

Ports sind nicht verfügbar: Offenlegung von Port TCP 0.0.0.0:xxxxx -> 0.0.0.0:0:
listen tcp 0.0.0.0:xxxxx: bind: Es wurde versucht,
auf eine Weise auf einen Socket zuzugreifen, der durch seine Zugriffsberechtigungen verboten ist.

Dann ging ich zurück und versuchte, den ursprünglich geschlossenen Container zu starten, stellte jedoch fest, dass er nicht gestartet werden konnte. Okay, Baidu hat diesen Fehler gemacht.

3. Lösen

Basierend auf dem Grund, warum der oben angezeigte Port nicht verfügbar ist, hat die Suchmaschine die Lösung gefunden
Winnat neu starten

  • Schritte:
  1. Führen Sie PowerShell als Administrator aus
  2. Hör auf, Winnat
net stop winnat
  1. Winnat starten
 net start winnat

Dann ging ich zurück, um meinen Container laufen zu lassen, und er war am Leben!

Stellen Sie eine Verbindung zu meinem MySQL in Navicat her, wow ~ es funktioniert.
Fügen Sie hier eine Bildbeschreibung ein
Löschen Sie den neu erstellten Container und machen Sie Schluss!

Supongo que te gusta

Origin blog.csdn.net/qq_17229141/article/details/126478908
Recomendado
Clasificación