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

So lassen Sie Remote-Verbindungen zu MySQL zu

Einführung

Es ist nicht ungewöhnlich, Datenbanken und Webserver auf demselben lokalen Computer zu hosten. Viele Unternehmen wechseln jedoch jetzt zu einer stärker verteilten Umgebung.

Ein separater Datenbankserver kann die Sicherheit und Hardwareleistung verbessern und es Ihnen ermöglichen, Ressourcen schnell zu skalieren. In solchen Anwendungsfällen ist das Erlernen der effektiven Verwaltung von Remote-Ressourcen eine Priorität.

Dieses Tutorial zeigt Ihnen, wie Sie Remote-Verbindungen zu einer MySQL-Datenbank aktivieren.

Voraussetzungen

  • Zugriff auf ein Terminalfenster/eine Befehlszeile
  • Remote-MySQL-Server
  • Sudo oder root Privilegien auf lokalen und entfernten Rechnern

MySQL Server-Remoteverbindung

Das Zulassen von Verbindungen zu einem Remote-MySQL-Server wird in 3 Schritten eingerichtet:

  1. MySQL-Konfigurationsdatei bearbeiten
  2. Firewall konfigurieren
  3. Mit Remote-MySQL-Server verbinden

Schritt 1:MySQL-Konfigurationsdatei bearbeiten

1.1 Zugriff auf mysqld.cnf-Datei

Verwenden Sie Ihren bevorzugten Texteditor, um mysqld.cnf zu öffnen Datei. Dieses Beispiel verwendet den Nano-Texteditor in Ubuntu 18.04. Geben Sie den folgenden Befehl in Ihre Befehlszeilenschnittstelle ein, um auf die Konfigurationsdatei des MySQL-Servers zuzugreifen:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Der Speicherort der Datei kann je nach verwendeter Distribution und Version variieren. Wenn die MySQL-Konfigurationsdatei nicht ihr Standardspeicherort ist, versuchen Sie es mit Linux find Befehl, um es zu erkennen.

1.2 Bindungsadresse IP ändern

Sie haben jetzt Zugriff auf die Konfigurationsdatei des MySQL-Servers. Scrollen Sie nach unten zur Bind-Adresse Zeile und ändern Sie die IP-Adresse. Die aktuelle Standard-IP ist auf 127.0.0.1 eingestellt. Diese IP beschränkt MySQL-Verbindungen auf den lokalen Rechner.

Die neue IP sollte mit der Adresse des Computers übereinstimmen, der remote auf den MySQL-Server zugreifen muss. Wenn Sie beispielsweise MySQL an 0.0.0.0 binden, kann sich jede Maschine, die den MySQL-Server erreicht, auch damit verbinden.

Nachdem Sie die erforderlichen Änderungen vorgenommen haben, speichern und beenden Sie die Konfigurationsdatei.

1.3 Starten Sie den MySQL-Dienst neu

Wenden Sie die an der MySQL-Konfigurationsdatei vorgenommenen Änderungen an, indem Sie den MySQL-Dienst neu starten:

sudo systemctl restart mysql

Als Nächstes müssen Ihre aktuellen Firewall-Einstellungen angepasst werden, um Datenverkehr zum Standard-MySQL-Port zuzulassen.

Schritt 2:Richten Sie die Firewall ein, um Remote-MySQL-Verbindungen zuzulassen

Beim Bearbeiten der Konfigurationsdatei haben Sie wahrscheinlich festgestellt, dass der MySQL-Standardport 3306 ist .

Wenn Sie bereits eine Firewall auf Ihrem MySQL-Server konfiguriert haben, müssen Sie Datenverkehr für diesen spezifischen Port öffnen. Folgen Sie den Anweisungen unten, die Ihrem verwendeten Firewall-Dienst entsprechen.

Option 1:UFW (unkomplizierte Firewall)

UFW ist das Standard-Firewall-Tool in Ubuntu. Geben Sie in einem Terminalfenster den folgenden Befehl ein, um Datenverkehr zuzulassen und die IP und den Port abzugleichen:

sudo ufw allow from remote_ip_address to any port 3306

Das System bestätigt, dass die Regeln erfolgreich aktualisiert wurden.

Option 2:FirewallD

Das Verwaltungstool firewalld in CentOS verwendet Zonen festzulegen, welcher Datenverkehr zugelassen werden soll.

Erstellen Sie eine neue Zone, um die Regeln für den Datenverkehr des MySQL-Servers festzulegen. Der Name der Zone in unserem Beispiel ist mysqlrule , und wir haben die IP-Adresse aus unserem vorherigen Beispiel 133.155.44.103 verwendet :

sudo firewall-cmd --new-zone=mysqlrule --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --permanent --zone=mysqlrule --add-source=133.155.44.103
sudo firewall-cmd --permanent --zone=mysqlrule --add-port=3306/tcp
sudo firewall-cmd --reload

Sie haben Port 3306 auf Ihrer Firewall erfolgreich geöffnet.

Option 3:Öffnen Sie Port 3306 mit iptables

Die iptables Dienstprogramm ist standardmäßig auf den meisten Linux-Distributionen verfügbar. Geben Sie den folgenden Befehl ein, um MySQL-Port 3306 für uneingeschränkten Datenverkehr zu öffnen:

sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

Verwenden Sie stattdessen den folgenden Befehl, um den Zugriff auf eine bestimmte IP-Adresse zu beschränken:

sudo iptables -A INPUT -p tcp -s 133.155.44.103 --dport 3306 -j ACCEPT

Dieser Befehl gewährt Zugriff auf 133.155.44.103. Sie müssten es durch die IP für Ihre Remote-Verbindung ersetzen.

Es ist notwendig, die an den iptables-Regeln vorgenommenen Änderungen zu speichern. Geben Sie in einer Ubuntu-basierten Distribution die folgenden Befehle ein:

sudo netfilter-persistent save
sudo netfilter-persistent reload

Geben Sie den folgenden Befehl ein, um die neuen iptables-Regeln in CentOS zu speichern:

service iptables save

Schritt 3:Verbindung zum Remote-MySQL-Server herstellen

Ihr Remote-Server ist jetzt bereit, Verbindungen anzunehmen. Verwenden Sie den folgenden Befehl, um eine Verbindung mit Ihrem Remote-MySQL-Server herzustellen:

mysql -u username -h mysql_server_ip -p

Der -u username im Befehl steht für Ihren MySQL-Benutzernamen. Die -h mysql_server_ip ist die IP oder der Hostname Ihres MySQL-Servers. Das -p Option fordert Sie auf, das Passwort für den MySQL-Benutzernamen einzugeben.

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

Connection to mysql_server_ip 3306 port [tcp/mysql] succeeded!

Wie gewährt man Fernzugriff auf eine neue MySQL-Datenbank?

Wenn Sie noch keine Datenbanken haben, können Sie ganz einfach eine Datenbank erstellen, indem Sie den folgenden Befehl in Ihre MySQL-Shell eingeben:

CREATE DATABASE ‘yourDB’;

So gewähren Sie entfernten Benutzern Zugriff auf eine bestimmte Datenbank:

GRANT ALL PRIVILEGES ON yourDB.* TO [email protected]’133.155.44.103’ IDENTIFIED BY ‘password1’;

Der Name der Datenbank, der Benutzername, die Remote-IP und das Passwort müssen mit den Informationen übereinstimmen, die Sie für die Remote-Verbindung verwenden möchten.

So gewähren Sie Fernzugriff auf eine vorhandene MySQL-Datenbank

Um einem Benutzer Fernzugriff auf eine vorhandene Datenbank zu gewähren, ist eine Reihe von zwei Befehlen erforderlich:

update db set Host=’133.155.44.103' where Db='yourDB';
update user set Host=’133.155.44.103' where user='user1';

Benutzer1 kann nun auf yourDB zugreifen von einem entfernten Standort, der durch die IP 133.155.44.103 identifiziert wird .


Ubuntu
  1. So setzen Sie das Root-MySql-Passwort zurück

  2. So installieren Sie MySQL 8.0 / 5.7 unter Debian 11 / Debian 10

  3. So installieren Sie MySQL Server unter Debian 9

  4. So installieren Sie MySQL Server unter CentOS 7

  5. So installieren Sie MySQL Server unter Ubuntu 16.04

So lassen Sie Remote-Verbindungen zu MySQL zu

So installieren Sie MySQL 8 unter CentOS 8

So installieren Sie MySQL-Server in Ubuntu

So erlauben Sie den Fernzugriff auf den MySQL-Datenbankserver

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

So installieren Sie MySQL Server unter Ubuntu 20.04