GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So erlauben Sie den Fernzugriff auf den MySQL-Datenbankserver

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.


Linux
  1. So installieren Sie den MySQL 8-Datenbankserver unter CentOS 8

  2. So erlauben oder verweigern Sie die Remote-Anmeldung für bestimmte Benutzerkonten auf dem Linux-Server

  3. So installieren Sie den MySQL-Datenbankserver unter CentOS

  4. So erlauben Sie eine Remote-Verbindung zum MySQL-Datenbankserver

  5. So konfigurieren Sie eine MySQL-Slave-Datenbank

So überprüfen Sie die MySQL-Benutzerrechte unter Linux

Wie erlaube ich eine Remote-Verbindung zum MySQL-Server in cPanel/WHM-Server?

Wie füge ich eine MySQL-Datenbank in SolidCP hinzu?

Wie füge ich eine MySQL-Datenbank in WebsitePanel 2.1 hinzu?

Wie richte ich den Remote-MySQL-Zugriff auf cPanel ein?

Zusätzliche MySQL-Zugriffshosts