Verbinden einer entfernten MySQL-Datenbank über die Befehlszeile
Remote-Verbindungen sind erforderlich, wenn wir in einer verteilten Umgebung arbeiten. Dieses Tutorial ist eine Schritt-für-Schritt-Anleitung, die erklärt, wie Sie eine Remote-MySQL-Datenbank über die Befehlszeile verbinden.
Verbinden Sie eine entfernte MySQL-Datenbank über die Befehlszeile
Bevor Sie fortfahren, müssen zunächst einige Dinge erledigt sein – Zugriff auf die Befehlszeile oder das Terminalfenster und ein MySQL-Server, der an einem anderen Ort ausgeführt wird (ein Remote-MySQL-Server).
Wir benötigen außerdem root
- oder sudo
-Rechte auf entfernten und lokalen Rechnern. Sie können auch ssh
verwenden, um sich remote zu verbinden, wenn Sie keinen direkten Zugriff auf den MySQL-Server haben.
Sie können diesen Artikel verwenden, wenn Sie sich mit ssh
verbinden möchten.
Dieses Tutorial führt Sie durch den Aufbau einer Remote-Verbindung mit einer MySQL-Datenbank über eine Befehlszeile. Es umfasst die folgenden Schritte.
- Bearbeiten Sie die MySQL-Datei
config
- Konfigurieren Sie die Firewall, um Remote-Verbindungen zuzulassen
- Lassen Sie die
root
-Anmeldung aus der Ferne zu - Verbinden Sie sich mit einem Remote-MySQL-Server
Das Folgende ist das Detail für jeden Schritt.
Bearbeiten Sie die MySQL-Datei config
Verwenden Sie den folgenden Befehl, um die Datei config
in einem Texteditor zu öffnen. Wir verwenden einen nano
-Texteditor, aber Sie können jeden Texteditor verwenden, mit dem Sie sich wohl fühlen.
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Angenommen, wir haben den Pfad der Datei config
vergessen oder kennen ihn nicht, dann können wir den Befehl [find
](https://phoenixnap.com/kb/guide-linux-find-command verwenden, um den Speicherort der Datei config
zu erfahren. Sobald die Datei config
geöffnet ist, suchen Sie nach dem Abschnitt [mysqld]
(https://phoenixnap.com/kb/guide-linux-find-command.
Suchen Sie im Abschnitt [mysqld]
nach bind-address
und ändern Sie den Wert von 127.0.0.1
auf 0.0.0.0
oder kommentieren Sie diese Zeile mit dem Symbol #
.
Was ist der Grund für die Aktualisierung der Option bind-address
? Aufgrund der Standardeinstellungen können wir uns mit einem lokalen Computer mit der IP-Adresse 127.0.0.1
mit diesem Server verbinden.
Wir erlauben allen Computern, sich remote mit diesem Server zu verbinden, indem Sie diese Option mit dem Symbol #
kommentieren oder ihren Wert durch 0.0.0.0 ersetzen.
Wenn wir möchten, dass nur eine Maschine remote verbunden ist, können wir die IP-Adresse unserer Host-Maschine anstelle von 0.0.0.0
schreiben. Wenn wir mit den Änderungen fertig sind, speichern Sie sie und beenden Sie die Datei.
Um die Updates anzuwenden, starten Sie den MySQL-Server mit dem folgenden Befehl neu.
sudo systemctl restart mysql
Konfigurieren Sie die Firewall, um Remoteverbindungen zuzulassen
Beim Konfigurieren der bind-address
in der config
-Datei haben Sie vielleicht bemerkt, dass der Standard-MySQL-Port 3306
ist. Hier passen wir die Einstellungen an, um Remote-Datenverkehr zum Standardport von MySQL zuzulassen, der 3306
ist.
Bevor wir den Datenverkehr öffnen, müssen wir die Firewall richtig konfigurieren. Sobald dies erledigt ist, können wir den unten angegebenen Befehl verwenden, um den Datenverkehr für diesen bestimmten Port zu öffnen.
Da wir Ubuntu 20.04 verwenden, verwenden wir ufw
(unkomplizierte Firewall).
sudo ufw allow from your_remote_ip_address to any port 3306
Sobald wir Enter drücken, sehen wir, dass die Regeln erfolgreich aktualisiert wurden.
Root-Anmeldung aus der Ferne zulassen
Aufgrund seiner Standardeinstellungen können wir uns mit einem lokalen Computer mit root
verbinden. Wir müssen ein paar Änderungen vornehmen, damit sich entfernte Maschinen als root
verbinden können.
Verwenden Sie dazu die folgenden Befehle.
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost';
mysql> UPDATE mysql.user SET host='%' WHERE user='root';
Starten Sie dann den MySQL-Server mit systemctl
wie folgt neu.
sudo systemctl restart mysql
Stellen Sie eine Verbindung zu einem entfernten MySQL-Server her
Sobald der Remote-MySQL-Server bereit ist, Remote-Verbindungen zu akzeptieren, können wir den folgenden Befehl verwenden, um eine Verbindung mit unserem Remote-MySQL-Server herzustellen.
mysql -u your_username -h your_mysql_server_ip -p
Ersetzen Sie hier your_username
durch Ihren Benutzernamen und your_mysql_server_ip
durch Ihre IP. Sie können auch den Hostnamen
Ihres MySQL-Servers verwenden.
Das -p
fordert Sie auf, das Passwort für den Benutzernamen einzugeben, den Sie im oben angegebenen Befehl verwendet haben.
Sie werden schließlich mit einem entfernten MySQL-Server verbunden, wenn Sie alles richtig gemacht haben. Um den Fernzugriff auf eine Datenbank zu gewähren, können wir die folgenden Abfragen ausführen.
mysql> update db set Host='ip_address' where
-> Db='yourDB_name';
mysql> update user set Host='ip_address' where
-> user='username';
Ersetzen Sie username
, Host
und Db
durch Ihre angegebenen Werte. Danach können Sie nun von einem entfernten Standort aus auf die angegebene Datenbank zugreifen.