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.
