Das Software-Ökosystem ist für den Begriff der verteilten Systeme nicht neu. Sie müssen nicht physisch anwesend sein, um mit Ihrer remote gehosteten Software zu interagieren.
Also Ihr MySQL muss sich nicht auf einem lokalen Computer befinden, damit Sie von seinen Funktionsmerkmalen voll profitieren können. Sie können MySQL jetzt auf einem dedizierten Remote-Server ausführen lassen und dennoch dieselbe Datenbanksicherheit und -leistung wie bei MySQL auf einem lokalen/Desktop-Rechner genießen.
Dieser Artikelleitfaden führt uns durch die Einrichtung und Aktivierung des Fernzugriffs auf MySQL Server unter Linux. Auf dem Remote-Server/Rechner, auf dem Ihr MySQL gehostet wird Datenbank-Software, müssen wir einige Konfigurationsschritte durchführen, um authentifizierten Remote-Benutzern den Zugriff zu ermöglichen.
Erstellen Sie einen neuen MySQL-Benutzer
Es ist ratsam, mit einem entfernten Benutzer zu arbeiten, der weder Root-MySQL ist Benutzer noch an den Remote-Server gebunden, auf dem MySQL gehostet wird Datenbanksoftware.
Greifen Sie auf Ihr entferntes MySQL zu Server und Datenbank über SSH .
$ ssh [email protected] $ mysql -u root -p
Um einen neuen MySQL-Benutzer anzulegen, halten wir uns an die Befehlssyntax:
CREATE USER 'username'@'%' IDENTIFIED BY 'your_user_password';
Wie Sie bereits bemerkt haben, verwenden wir die Schreibweise ‘Benutzername’@’%’ und nicht ‘Benutzername’@’localhost’ da wir möchten, dass dieser Benutzer dynamisch genug ist, um auf MySQL zuzugreifen Server von jedem anderen Host-Rechner mit einer anderen IP-Adresse.
mysql> CREATE USER 'remote_user'@'%' IDENTIFIED BY 'password1122';
Lassen Sie uns diesem Benutzer einige Datenbankrechte erteilen. Beispielsweise kann dieser Benutzer die gleichen Datenbankrechte wie der Root-Benutzer haben, nur dass der Root-Benutzer an den Host-Rechner gebunden ist.
mysql> GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%'; mysql> FLUSH PRIVILEGES; mysql> exit;
[Das könnte Ihnen auch gefallen:So erstellen Sie einen neuen MySQL-Benutzer über phpMyAdmin ]
Entfernten MySQL-Zugriff aktivieren
Nachdem wir den Remote-Benutzer erstellt haben, ist es an der Zeit, einige zusätzliche Konfigurationsänderungen vorzunehmen. Standardmäßig ist die MySQL-Bind-Adresse 127.0.0.1 was impliziert, dass nur localhost-Benutzer mit der MySQL-Datenbank interagieren können.
Um Ihrem Datenbankserver Zugriff auf die IP-Adressen anderer Benutzer zu gewähren, navigieren und öffnen Sie die Datei MySQL-Konfigurationsdatei.
$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf OR $ sudo vi /etc/my.cnf
Um den Fernzugriff auf Ihren MySQL-Datenbankserver zu ermöglichen, müssen die Felder bind-address und mysqlx-bind-address müssen auskommentiert werden. Diese Konfigurationsänderungen verhindern, dass sich der Server, auf dem die MySQL-Datenbanksoftware gehostet wird, nur auf localhost-Verbindungen (127.0.0.1) verlässt. Danach darf jede IP-Adresse darauf zugreifen.
Speichern und schließen Sie die Datei.
Starten Sie Ihren MySQL-Server neu und identifizieren Sie dann die IP-Adresse des MySQL-Servers.
$ sudo systemctl restart mysql $ ifconfig
Versuch des Remote-Zugriffs auf die MySQL-Datenbank
Um sich direkt mit MySQL zu verbinden Datenbankserver entfernt, halten Sie sich an die folgende MySQL-Syntax:
$ mysql -u username -h mysql_server_ip_adress -p
In unserem Fall sieht der Befehl wie folgt aus:
$ mysql -u remote_user -h 192.168.50.130 -p
Wenn Sie auf den obigen Fehler stoßen, wie in der Bildschirmaufnahme dargestellt, müssen Sie Ihren MySQL-Benutzer so konfigurieren, dass er ein natives Passwort verwendet. Melden Sie sich über SSH wieder bei Ihrem MySQL-Server an und implementieren Sie den Befehl:
mysql> ALTER USER 'remote_user'@'%' IDENTIFIED WITH mysql_native_password BY 'password1122'; mysql> exit;
Beenden Sie danach die MySQL-Datenbank-Shell und starten Sie den MySQL-Daemon neu.
$ sudo systemctl restart mysql
Versuchen Sie erneut, auf Ihren MySQL-Server zuzugreifen.
$ mysql -u remote_user -h 192.168.50.130 -p
Und einfach so können Sie von einem Remote-Client-Computer, der auf eine IP-Adresse Ihrer Wahl konfiguriert ist, direkt und remote auf einen MySQL-Datenbankserver zugreifen.
Aktivieren Sie den Remote-MySQL-Zugriff in der Firewall
Wenn auf Ihrem Remote-Server eine Firewall aktiviert ist, müssen Sie möglicherweise Zugriff auf den Standardport von MySQL 3306 gewähren und gewähren Sie Zugriff auf remote_ip_address
wie abgebildet.
UFW-Firewall
$ sudo ufw allow from remote_ip_address to any port 3306
FirewallD
$ sudo firewall-cmd --new-zone=mysqlrule --permanent $ sudo firewall-cmd --reload $ sudo firewall-cmd --permanent --zone=mysqlrule --add-source=remote_ip_address $ sudo firewall-cmd --permanent --zone=mysqlrule --add-port=3306/tcp $ sudo firewall-cmd --reload
IPtables
$ sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT $ sudo iptables -A INPUT -p tcp -s remote_ip_address --dport 3306 -j ACCEPT
Das ist alles! In diesem Artikel haben Sie hilfreiche Einblicke in die allgemeinen Ideen des Remote-MySQL-Zugriffs unter Linux erhalten.