Verbinden einer entfernten MySQL-Datenbank über die Befehlszeile

Mehvish Ashiq 16 Februar 2024
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.

  1. Bearbeiten Sie die MySQL-Datei config
  2. Konfigurieren Sie die Firewall, um Remote-Verbindungen zuzulassen
  3. Lassen Sie die root-Anmeldung aus der Ferne zu
  4. 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.

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

Verwandter Artikel - MySQL Database