Lösung für Workbench, das keine Verbindung zu MySQL auf Alibaba Cloud Server Ubuntu herstellt (getestet)

Lösung für Workbench, das keine Verbindung zu MySQL auf Alibaba Cloud Server Ubuntu herstellt (getestet)

In den letzten zwei Tagen hatte ich große Probleme, das Problem zu lösen, dass Workbench keine Verbindung zum Alibaba Cloud Server herstellen kann. Die Tutorials, die ich im Internet gefunden habe, sind alle ähnlich, aber dieses funktioniert bei mir nicht. Zum Glück wurde es am Ende endlich gelöst. Lassen Sie mich diesen lästigen Vorgang aufzeichnen.

Verwendete Umgebung:

System:

Ubuntu 18.04.2 LTS
MySQL: mysql Ver 14.14 Distrib 5.7.29, für Linux (x86_64) mit EditLine-Wrapper

MySQL Workbench 8.0CE

1. Keine Verbindung zum Server möglich

Wenn Sie zum ersten Mal eine Verbindung herstellen, wird der folgende Status angezeigt.

Eine der aufgetretenen Fallstricke

Die meisten im Internet gefundenen Methoden dienen zum Ändern des Wertes von bind_address

Überprüfen Sie zunächst den folgenden MySQL-Portstatus

netstat -anp | grep mysql

ps: Wenn 127.0.0.1:3306 angezeigt wird, bedeutet dies, dass eine Änderung erforderlich ist. Wenn : : :3306 angezeigt wird, ist dies nicht erforderlich.

Da der von mir angezeigte Status 127.0.0.1:3306 ist, also dieser Wert, muss ich ihn ändern.

Die meisten im Internet gefundenen Änderungspfade für Konfigurationsdateien geben an, dass sie sich in **/etc/mysql/my.cnf** befinden, aber das gilt nur für die alte Version. Da ich die neueste Version installiert habe, habe ich diese Datei geöffnet und festgestellt, dass sie keinen bind_address-Wert enthielt. Später habe ich nachgesehen und festgestellt, dass sich die neue Version in **/etc/mysql/mysql.conf.d/mysqld.cnf** befindet. Nachdem Sie das Problem entdeckt haben, können Sie es ganz einfach beheben. Suchen Sie den folgenden Teil und kommentieren Sie ihn aus.

# Anstatt das Netzwerk zu überspringen, wird jetzt standardmäßig nur noch auf
# localhost, das kompatibler und nicht weniger sicher ist.
Bindeadresse = 127.0.0.1

2. Ändern Sie die Informationen der mysql.user-Tabelle

Um dem Root-Benutzer den Remote-Zugriff auf die Datenbank zu ermöglichen, müssen einige Informationen geändert werden.

mysql -u root -p Passwort
mysql>mysql verwenden
Einlesen von Tabelleninformationen zur Vervollständigung von Tabellen- und Spaltennamen
Sie können diese Funktion deaktivieren, um einen schnelleren Start mit -A zu erhalten

Datenbank geändert
mysql> Benutzer auswählen, Host vom Benutzer;
+------------------+----------------+
| Benutzer | Gastgeber |
+------------------+----------------+
| Stammverzeichnis | lokaler Host |
| debian-sys-maint | lokaler Host |
| mysql.session | lokaler Host |
| mysql.sys | lokaler Host |
+------------------+----------------+

Der oben stehende Host gibt die Adressen an, von denen aus Benutzer auf die Datenbank zugreifen können. Da es sich um einen lokalen Host handelt, kann nur lokal darauf zugegriffen werden. Insgesamt wurden zwei Änderungsmethoden gefunden. Eine besteht darin, den Host, der dem ursprünglichen Root entspricht, direkt in **%** zu ändern oder einen neuen Benutzer hinzuzufügen, der Remotezugriff hat.

Methode 1:

Führen Sie den folgenden Befehl aus, wenn Sie die MySQL-Datenbank aufrufen

Benutzer aktualisieren setze Host='%' wobei Benutzer='root'

Methode 2: Einen neuen Benutzer hinzufügen:

Gewähren Sie dem durch „Passwort“ identifizierten neuen Benutzer@'%' alle Berechtigungen für *.*.

Unabhängig davon, welche der oben genannten Methoden Sie verwenden, müssen Sie die Einstellungen jetzt aktualisieren.

mysql> Berechtigungen leeren;
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

Ich habe beide Methoden ausprobiert, aber es hat immer noch nicht funktioniert. Es hieß, dass unsere aktuelle IP-Adresse die Verbindung nicht zulässt.

Nach zahlreichen Versuchen stellte ich fest, dass der Benutzername für die Remoteverbindung nicht „root“ sein sollte. Nach mehreren Neuinstallationsversuchen stellte ich fest, dass das Einrichten des Root-Zugriffs zum Zulassen einer Remoteverbindung immer fehlschlug.

3. Schalten Sie die Firewall aus

# Starten Sie zuerst die Datenbank neu
sudo service mysql neu starten
# Überprüfen Sie, ob der MySQL-Portstatus lautet: : :3306
netstat -anp | grep mysql
# Deaktivieren Sie die Firewall
sudo ufw deaktivieren
# Überprüfen Sie den Firewall-Status
sudo ufw-Status

4. Offene Ports

Benutzer von Alibaba Cloud oder anderen Cloud-Diensten müssen darauf achten, die entsprechenden Ports zu öffnen und zu schützen. Der Standard-MySQL-Port ist 3306.

Öffnen Sie die Alibaba Cloud-Konsole und fügen Sie Sicherheitsgruppenregeln hinzu

Es gibt eine Sicherheitsgruppenbeschränkungseinstellung. Stellen Sie die eingehende Richtung so ein, dass Port 3306 zugelassen wird, und versuchen Sie Folgendes. Es wird sofort funktionieren.

Alibaba Cloud ECS MySQL kann nicht remote verbunden werden. Wenn Sie alle Online-Tutorials ausprobiert haben und immer noch keine Verbindung herstellen können, lesen Sie bitte weiter unten

Überprüfen Sie zuerst die Firewall. Das ist das Einfachste. In vielen Tutorials wird erwähnt, dass Port 3306 aktiviert werden sollte. Überprüfen Sie die Alibaba Cloud-Serversicherheitsgruppe, um zu sehen, ob die eingehenden und ausgehenden Regeln für 3306 aktiviert sind. Das ist wirklich eine Falle. Ich weiß nicht, wann Alibaba Cloud Linux-Server dieses Ding haben. Ich erinnere mich, dass es nur auf Windows-Servern verfügbar ist. Manchmal kann es immer noch nicht über Tools verbunden werden und es wird angezeigt, dass es mit SSL zusammenhängt. Ich verwende IDEA und MySQL Workbench zum Herstellen einer Verbindung. IDEA soll die Verbindungs-URL hinzufügen

useSSl=false

Was MySQL Workbench betrifft, habe ich nicht herausgefunden, wie man eine Verbindung herstellt. Eine andere Möglichkeit besteht darin, SSL auf dem Server zu deaktivieren.
Suchen Sie die Datei my.cnf, normalerweise in /etc/my.conf
Fügen Sie dem Inhalt den Befehl skip_ssl hinzu, um SSL zu deaktivieren

Dienst MySQL Neustart

Starten Sie MySQL neu

Ich werde nicht näher darauf eingehen, wie alle IP-Adressen zugänglich gemacht werden, wie localhost auf 127.0.0.1 geändert wird usw. Es gibt viele Artikel online, die als Referenz dienen können. Wer sich mit Sicherheitsgruppen und SSL nicht auskennt, kann die oben genannten Methoden zu Rate ziehen.

Die Rolle von useSSL=false bei der Verbindung mit der Datenbank

useSSL=false
In höheren MySQL-Versionen müssen Sie angeben, ob Sie eine SSL-Verbindung verwenden möchten

1.true erfordert Verbindung
2.false Keine Verbindung erforderlich

5. Erledigen Sie es

Dies ist das Ende des Artikels, also ist im Grunde alles gelöst.

Das könnte Sie auch interessieren:
  • MySQL WorkBench-Verwaltungsvorgänge MySQL-Tutorial
  • So verwenden Sie MySQL Workbench (Bild und Text)
  • Mysql Workbench - Abfragemethode für MySQL-Datenbanken
  • Grafisches Tutorial zur Installation und Konfiguration von Mysql WorkBench
  • MySQL Workbench herunterladen und verwenden Tutorial detaillierte Erklärung
  • MySQL und MySQL Workbench Installations-Tutorial unter Ubuntu
  • Grafisches Tutorial zur Installation und Konfiguration von MySQL5.7+ MySQL Workbench unter MAC
  • Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.17 und Workbench
  • Detaillierte Erklärung des Workbench-Beispiels in MySQL
  • Tutorial zur Installation und Konfiguration von MySQL Workbench unter CentOS
  • Detaillierte Erläuterung des MySQL Workbench-Nutzungs-Tutorials

<<:  Analyse der Vorteile von path.join() in Node.js

>>:  Einfaches Setup von VMware ESXi6.7 (mit Bildern und Text)

Artikel empfehlen

Eine kurze Diskussion über benutzerdefinierte VUE-Uni-App-Komponenten

1. Übergeordnete Komponenten können Daten über Re...

Detaillierte Erklärung, wo Docker Protokolldateien speichert

Inhaltsverzeichnis Wo werden die Protokolle gespe...

Analyse des Unterschieds zwischen fettgedrucktem <b> und <strong>

Wir alle Webmaster wissen, dass es bei der Optimi...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.15

In diesem Artikel wird die Installations- und Kon...

Die Hintergrundfarbe oder das Bild im Div-Container wächst mit dem Wachstum

Code kopieren Der Code lautet wie folgt: Höhe: au...

Tutorial zur Installation von lamp-php7.0 in einer Centos7.4-Umgebung

Dieser Artikel beschreibt, wie lamp-php7.0 in ein...

Was tun, wenn der von Docker Run gestartete Container hängt und Daten verliert?

Szenariobeschreibung In einem bestimmten System w...