So lassen Sie Remote-Verbindungen zu MySQL zu

Wenn Sie mit einer MySQL-Datenbank(MySQL database) arbeiten , sind Sie sich bereits der Herausforderungen bewusst, denen Sie beim Schutz Ihrer Datenbank gegenüberstehen. Von Datenbank-Hacking-Versuchen mit SQL -Injections bis hin zu Brute-Force-Angriffen ist es schwierig, Ihre Daten zu schützen, insbesondere wenn Sie remote mit einer Datenbank arbeiten.

Es gibt Möglichkeiten, einen SQL -Server so zu konfigurieren, dass er Remote-Verbindungen zulässt, aber Sie müssen vorsichtig sein, da das Zulassen von Remote-Verbindungen auf einem MySQL -Server Ihre Datenbank zu einem leichten Ziel für Hacker machen kann. Wenn Sie sichere Remote-Verbindungen zu einer MySQL(MySQL) -Datenbank zulassen möchten, müssen Sie Folgendes wissen.

Bevor Sie beginnen(Before You Begin)

Bevor Sie Änderungen an Ihrer MySQL -Datenbank vornehmen, ist es wichtig, dass Sie Ihre Datenbank sichern(backup your database) , insbesondere wenn Sie auf einem Produktionsserver (einem aktiv genutzten Server) arbeiten. Alle Änderungen, die Sie an Ihrer Datenbank oder dem Server vornehmen, auf dem sie gehostet wird, können zu schwerwiegenden Datenverlusten führen, wenn etwas schief geht.

Möglicherweise stellen Sie auch fest, dass Änderungen an den Verbindungen Ihres Servers Sie später daran hindern, darauf zuzugreifen. In diesem Fall müssen Sie sich möglicherweise an einen Serveradministrator wenden, um weitere Unterstützung zu erhalten. Es ist eine gute Idee, alle Änderungen auf einem lokal ausgeführten MySQL - Server zu testen, um zu überprüfen, ob Ihre Änderungen funktionieren, bevor Sie sie aus der Ferne ausprobieren.

Es ist auch wahrscheinlich, dass Sie, wenn Sie Änderungen an einem Remote-Server vornehmen, eine sichere Möglichkeit benötigen, um eine Verbindung herzustellen und Änderungen vorzunehmen. SSH (Secure Shell) ist oft der beste Weg, dies zu tun, da Sie damit eine Verbindung zu Ihrem Remote-Server herstellen können. Sie können SSH auch verwenden , um eine Verbindung zu Servern in Ihrem lokalen Netzwerk herzustellen, z. B. zu denen, die auf einem Raspberry Pi gehostet(hosted on a Raspberry Pi) werden .

Diese Anleitung führt Sie durch die Schritte zur Konfiguration von MySQL , um Remote-Verbindungen zuzulassen, aber Sie müssen sicherstellen, dass Sie zuerst direkten oder Remote-Zugriff auf den Server haben, der Ihren MySQL -Server hostet.

Angenommen(Suppose) , Sie haben (zum Beispiel) keinen Fernzugriff auf Ihren Server über SSH . In diesem Fall können Sie Ihre MySQL(MySQL) -Datenbank nicht so konfigurieren , dass Remote-Verbindungen direkt zugelassen werden, es sei denn, Ihr Root-MySQL-Konto lässt bereits Remote-Verbindungen zu. Sie müssen diese Verbindung also zuerst herstellen, bevor Sie fortfahren können.

Bearbeiten Ihrer MySQL-Konfigurationsdatei(Editing Your MySQL Configuration File)

Der erste Schritt bei der Konfiguration von MySQL zum Zulassen von Remote-Verbindungen besteht darin, Ihre MySQL -Konfigurationsdatei zu bearbeiten. Zu diesem Zeitpunkt wird in diesem Handbuch davon ausgegangen, dass Sie bereits eine Remote-Verbindung zu dem Server, PC oder Mac hergestellt haben, auf dem Ihre mySQL-Datenbank gehostet wird, und über Konsolenzugriff verfügen. 

Alternativ können Sie einen lokalen MySQL(MySQL) -Server mit einem offenen Terminal unter Mac oder Linux oder einem Texteditor unter Windows konfigurieren .

  1. Verwenden Sie zunächst Ihren bevorzugten Konsolen-Texteditor, um Ihre MySQL -Datenbankdatei zu bearbeiten. Geben Sie unter Linux sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf in ein Terminal- oder SSH -Fenster ein, um diese Datei mit dem Nano - Editor zu bearbeiten (vorausgesetzt, Ihre MySQL - Datenbank befindet sich am Standardspeicherort)

  1. Wenn Sie Windows ausführen(Windows) , öffnen Sie den Datei-Explorer(File Explorer) und greifen Sie auf den Ordner zu, der Ihre MySQL - Installation enthält (z. B. C:/Program Files/MySQL/MySQL Server 8.0 ). Öffnen Sie die Datei my.ini mit Ihrem Standard-Texteditor (z. B. Notepad ), indem Sie auf den Eintrag doppelklicken. Wenn es nicht vorhanden ist, erstellen Sie zuerst die Datei(create the file first) .

  1. Öffnen Sie auf einem Mac ein Terminalfenster und sudo nano /usr/local/etc/my.cnf . Dies ist die Standardkonfigurationsdatei für MySQL , wenn Sie MySQL mit Homebrew(using homebrew) installiert haben .

Die oben genannten Speicherorte sind die Standardspeicherorte für MySQL- Konfigurationsdateien. Wenn diese Befehle nicht funktionieren, müssen Sie manuell nach den relevanten Dateien ( my.cnf , mysqld.cnf oder my.ini ) suchen, um den relevanten Dateipfad zu finden.

Festlegen eines IP-Bereichs für sichere Bindungsadressen(Setting a Safe Bind-Address IP Range)

  1. Nachdem Sie die MySQL -Konfigurationsdatei für Ihren Server geöffnet haben, verwenden Sie die Pfeiltaste Ihrer Tastatur, um den Abschnitt mit den Bindungsadressen der Datei zu erreichen. (bind-address)Dieser IP-Bereich begrenzt die Verbindungen zu Ihrer Datenbank, die normalerweise so eingestellt ist, dass nur Verbindungen vom lokalen Computer oder Server mit 127.0.0.1 zugelassen(127.0.0.1) werden .

  1. Wenn Sie Ihre MySQL(MySQL) -Datenbank so konfigurieren möchten, dass Verbindungen von Geräten über Ihre aktuelle Internetverbindung zugelassen werden, suchen Sie zuerst Ihre öffentliche IP-Adresse(find your public IP address) und ersetzen Sie dann 127.0.0.1 durch diese IP-Adresse. Ersetzen Sie es alternativ durch eine IP-Adresse für das Gerät oder den Server, von dem Sie Verbindungen zulassen möchten.

  1. Unter bestimmten Umständen möchten Sie möglicherweise alle(all) Remote-Verbindungen zu einer MySQL - Datenbank zulassen. Dies birgt ein extremes Risiko(extreme risk) und sollte nicht auf einem Produktionsserver verwendet werden. Wenn Sie dies jedoch zulassen möchten, ersetzen Sie 127.0.0.1 durch 0.0.0.0 .

  1. Notieren Sie sich den Portwert im Abschnitt(port ) Grundeinstellungen . (Basic Settings)Dies wird im nächsten Abschnitt benötigt. Wenn es nicht sichtbar ist, wird der Standardwert verwendet, der Port 3306 ist . Sie können Ihren eigenen Port hinzufügen, indem Sie port = xxxx in eine neue Zeile eingeben und xxxx durch einen geeigneten Portwert ersetzen.

  1. Nachdem Sie die Bindungsadresse(bind-address ) in Ihrer MySQL - Konfigurationsdatei konfiguriert haben, speichern Sie die Datei. Unter Linux(Linux) wählen Sie dazu Strg Ctrl + O und Ctrl + X Wählen Sie auf dem Mac Befehlstaste Command + O und Command + X . Windows-Benutzer können speichern, indem sie Datei(File ) > Speichern(Save) auswählen .

  1. Als Nächstes können Linux- und Mac - Benutzer MySQL neu starten , indem sie mysql.server stop && mysql.server start(mysql.server stop && mysql.server start ) oder mysql.server(mysql.server restart) restart eingeben . Möglicherweise müssen Sie den Befehl mit sudo(using sudo) erhöhen (z. B. sudo mysql.server restart ) und den entsprechenden Pfad zur Datei mysql.server verwenden (z. B. /usr/local/bin/mysql.server ).

  1.  Wenn der obige Befehl nicht funktioniert, versuchen Sie es stattdessen mit sudo service mysql restart .

  1. Um MySQL(MySQL) unter Windows neu zu starten , öffnen Sie ein neues PowerShell -Fenster, indem Sie mit der rechten Maustaste auf das Startmenü klicken und (Start)Windows PowerShell (Admin) auswählen . Geben Sie im PowerShell-Fenster net stop mysql80 gefolgt von net start mysql80 ein und ersetzen Sie dabei mysql80 durch den korrekten Dienstnamen auf Ihrem PC.

Wenn Sie den richtigen Dienstnamen unter Windows nicht kennen, geben Sie net start ein, um ihn zu finden. Wenn Sie Ihre Konfiguration nicht neu laden können, starten Sie Ihren Server neu und laden Sie MySQL stattdessen manuell neu (falls erforderlich).

Konfigurieren Ihrer Firewalls(Configuring Your Firewalls)

Zu diesem Zeitpunkt sollte Ihre MySQL - Datenbank Remoteverbindungen von Geräten zulassen, die die IP-Adresse verwenden, die Sie als Bind-Address- Wert in Ihrer MySQL - Konfigurationsdatei festgelegt haben (oder von allen Geräten, wenn Sie diesen Wert stattdessen auf 0.0.0.0 setzen ). Verbindungen werden jedoch weiterhin von Ihrem Gerät oder Ihrer Netzwerk-Firewall(device or network firewall) blockiert .

Die meisten Server und PCs verwenden eine Firewall, um Verbindungen zu blockieren, es sei denn, der Zugriff auf einen bestimmten Port wird gewährt. Die Schritte zum Konfigurieren variieren, je nachdem, ob Sie MySQL unter Windows oder Linux ausführen(Linux) . Mac -Firewalls sind standardmäßig deaktiviert, daher sollten Sie hier keine zusätzlichen Schritte ausführen müssen.

Konfigurieren Sie Linux-Firewalls(Configure Linux Firewalls)

Viele Linux-Server verwenden iptables als Standard-Firewall-Dienstprogramm. Sie können es konfigurieren, indem Sie die folgenden Schritte ausführen.

  1. Öffnen Sie ein Terminal oder eine SSH -Verbindung und geben Sie sudo iptables -A INPUT -p tcp -s XXXX –dport YYYY -j ACCEPT ein(sudo iptables -A INPUT -p tcp -s X.X.X.X –dport YYYY -j ACCEPT) . Ersetzen Sie XXXX durch die IP-Adresse des Geräts, (X.X.X.X)von dem Sie (from)MySQL - Verbindungen zulassen möchten , und ersetzen Sie YYYY durch den entsprechenden Portwert aus Ihrer MySQL -Konfigurationsdatei (z. B. 3306 ).

  1. Dadurch wird die Firewall vorübergehend konfiguriert. Wenn Sie einen Debian- oder Ubuntu-basierten Linux - Server verwenden, machen Sie diese Änderung dauerhaft, indem Sie sudo netfilter-persistent save und sudo netfilter-persistent reload in das Terminal- oder SSH-Fenster eingeben.

Wenn iptables nicht das Standard-Firewall-Tool für Ihre Linux -Distribution ist, müssen Sie das Benutzerhandbuch Ihrer Distribution für weitere Informationen konsultieren. Wenn bestimmte Pakete (z. B. netfilter-persistent ) nicht verfügbar sind, verwenden Sie das Software-Repository-Tool Ihrer Distribution, um es zu installieren (z. B. sudo apt install netfilter-persistent ).

Konfigurieren Sie Windows-Firewalls(Configure Windows Firewalls)

Wenn Sie einen Windows-PC oder -Server zum Hosten Ihrer Datenbank verwenden, können Sie Ihre Firewall mit diesen Schritten konfigurieren:

  1. Klicken Sie mit der rechten Maustaste auf(Right-click) das Startmenü(Start) und wählen Sie Ausführen(Run) aus .

  1. Geben Sie im Feld Ausführen (Run)wf.msc ein(wf.msc) und wählen Sie OK aus .

  1. Wählen Sie im Windows Defender - Fenster Eingehende Regeln(Inbound Rules ) > Neue Regel(New Rule) aus .

  1. Wählen Sie im Fenster „ Assistent für neue eingehende Regeln “ (New Inbound Rule Wizard)Port > Weiter(Next) aus .

  1. Wählen Sie im nächsten Menü TCP aus den Optionen aus, geben Sie 3306 (oder den in Ihrer MySQL -Konfigurationsdatei aufgeführten Portwert) ein und wählen Sie dann Weiter(Next) aus .

  1. Lassen Sie im Aktionsmenü(Action) die Standardoption Verbindung zulassen(Allow the connection) aktiviert und wählen Sie dann Weiter(Next) .

  1. Bestätigen Sie, dass die Regel für alle Netzwerktypen gelten soll, und wählen Sie dann Weiter(Next) aus . 

  1. Geben Sie einen aussagekräftigen Namen für die Regel (z. B. MySQL ) in den bereitgestellten Port ein und wählen Sie dann Fertig stellen(Finish) aus, um sie zu Ihrer Liste der Firewall-Regeln hinzuzufügen.

Wenn Sie Verbindungsprobleme haben, wiederholen Sie diese Schritte oben und stellen Sie sicher, dass Sie eine neue Regel für ausgehenden Datenverkehr(outbound rule ) in Ihren Firewall-Einstellungen mit denselben Details (Port 3306 usw.) erstellen. Möglicherweise müssen Sie auch Ihren lokalen Netzwerkrouter konfigurieren, um die erforderlichen blockierten Ports(open the necessary blocked ports) zu öffnen, um eingehende und ausgehende Verbindungen zu Ihrer Datenbank zuzulassen. 

Herstellen einer Verbindung zu einem Remote-Server mit MySQL(Connecting to a Remote Server Using MySQL)

Nachdem Sie Ihre MySQL -Datenbank so konfiguriert haben, dass sie Remote-Verbindungen zulässt, müssen Sie tatsächlich eine Verbindung zu ihr herstellen. Sie können dies mit dem mysql - Befehl ( mysql.exe unter Windows ) von einem Terminal- oder PowerShell - Fenster aus tun.

Wenn Sie Windows ausführen(Windows) , müssen Sie sicherstellen, dass MySQL lokal installiert ist,(MySQL is installed locally) bevor Sie beginnen. Mac- Benutzer können MySQL mit Homebrew(using homebrew) vom Terminal aus installieren ( brew install mysql ), während Linux - Benutzer ihr lokales App-Repository (z. B. sudo apt install mysql ) verwenden können, um die erforderlichen Pakete zu installieren.

Herstellen einer Verbindung zu MySQL unter Linux oder Mac(Connecting to MySQL on Linux or Mac)

  1. Um eine Verbindung zu Ihrem Remote - MySQL -Server auf Mac oder Linux herzustellen , öffnen Sie ein neues Terminalfenster und geben Sie mysql -u username -h XXXX:XXXX -p ein . Ersetzen Sie XXXX:XXXX durch die IP-Adresse und Portnummer Ihres Remote-Servers (z. B. 100.200.100.200:3306 ) und den Benutzernamen(username) durch Ihren MySQL-Benutzernamen.

  1. Bestätigen Sie Ihr Passwort, wenn Sie dazu aufgefordert werden. Bei erfolgreicher Verbindung erscheint im Terminal eine Erfolgsmeldung.

Herstellen einer Verbindung zu MySQL unter Windows(Connecting to MySQL on Windows)

  1. Um eine Verbindung zu einem Remote - MySQL -Server unter Windows herzustellen , öffnen Sie ein neues PowerShell -Fenster, indem Sie mit der rechten Maustaste auf das Startmenü klicken und (Start)Windows PowerShell (Admin) auswählen .

  1. Geben Sie im neuen PowerShell-Fenster cd “C:\Program Files\MySQL\MySQL Workbench 8.0\ “ ein, um den richtigen Ordner einzugeben, und ersetzen Sie dieses Verzeichnis durch das richtige Installationsverzeichnis auf Ihrem PC. Wenn Ihre MySQL -Version beispielsweise 8.0.1 ist, verwenden Sie stattdessen den Ordner MySQL Workbench 8.0.1 .

  1. Geben Sie dort .\mysql.exe -u username -h X.X.X.X:XXXX -p . Ersetzen Sie XXXX:XXXX durch die IP-Adresse und Portnummer Ihres Remote-Servers (z. B. 100.200.100.200:3306 ) und den Benutzernamen(username) durch einen MySQL -Benutzernamen, der den Fernzugriff ermöglicht (z. B. root ). Befolgen Sie(Follow) alle weiteren Anweisungen auf dem Bildschirm.
  2. Geben Sie Ihr Passwort ein, wenn Sie dazu aufgefordert werden, um den Anmeldevorgang abzuschließen und remote auf Ihre MySQL - Datenbank zuzugreifen.

Wenn dies nicht funktioniert, stellen Sie mit SSH eine Verbindung zu dem Server oder PC her, der Ihren (SSH)MySQL -Server hostet (oder greifen Sie direkt darauf zu), indem Sie diese Schritte und das Argument -h localhost verwenden. (-h localhost)Sie können dann ein geeignetes Benutzerkonto erstellen, indem Sie die folgenden Schritte ausführen.

Remote-Benutzerzugriff auf eine MySQL-Datenbank zulassen(Allowing Remote User Access to a MySQL Database)

An diesem Punkt sollten Sie in der Lage sein, eine Remote-Verbindung zu Ihrem MySQL -Server herzustellen, indem Sie das Root-Benutzerkonto Ihres Servers oder ein anderes Benutzerkonto mit erhöhten Rechten verwenden. Da diese Zugriffsebene unsicher ist, ziehen Sie es möglicherweise vor, ein eingeschränkteres Konto für den Zugriff auf Ihre MySQL - Datenbank zu erstellen.

Dieses Konto hat eingeschränkten Zugriff auf Ihren MySQL -Server, sodass es nur mit ausgewählten Datenbanken interagieren kann. Größere Änderungen wie der Zugriff auf andere Datenbankdaten, das Erstellen neuer Benutzerkonten usw. sind nicht möglich. 

Sie müssen die Möglichkeit haben, sich remote bei Ihrem MySQL -Server anzumelden. Wenn Sie Ihr Root-Konto nicht remote verwenden können, müssen Sie mit dem mysql - Befehl über eine Remote- SSH - Verbindung oder durch direkten Zugriff auf den PC oder Server, der den Server hostet, auf die Shell Ihres Servers zugreifen.

  1. Geben Sie in Ihrer entfernten MySQL -Shell (mit dem mysql -Tool) CREATE USER “username”@”x.x.x.x” IDENTIFIED BY “password”; und wählen Sie Eingabe(Enter) . Ersetzen Sie username durch den Benutzernamen, den Sie erstellen möchten, xxxx durch die IP-Adresse, von der aus Sie sich verbinden möchten, und password durch ein geeignetes Passwort.

  1. Sie müssen Ihrem neuen Konto die erforderlichen Berechtigungen erteilen. Geben Sie dazu GRANT ALL ON databasename.* TO username@”x.x.x.x”; und ersetzen Sie databasename, username(databasename, username, ) und xxxx  durch die korrekten Details. Wenn Sie möchten, ersetzen Sie databasename durch * , um ihm Zugriff auf alle Datenbanken zu gewähren. 

Verwenden Sie bei gewährtem Zugriff die Schritte im obigen Abschnitt, um sich mit Ihrem neuen Konto aus der Ferne mit Ihrem Server zu verbinden (z. B. mysql -u Benutzername -h XXXX:XXXX -p(mysql -u username -h X.X.X.X:XXXX -p) ).

Sicherung Ihrer Datenbankdaten(Securing Your Database Data)

Unabhängig davon , ob Sie mit MySQL oder einer anderen Art von SQL -Datenbank arbeiten, ist es wichtig, Ihre Verbindungen sicher zu halten, um Ihre Datensicherheit zu wahren. Eine gute Möglichkeit, dies zu tun, besteht darin , SSH-Schlüssel für den Fernzugriff(generate SSH keys for remote access) auf Ihren Server zu generieren, anstatt sich auf veraltete (und leicht zu erratende) Passwörter zu verlassen.

Wenn Sie Angst vor Datenverlust haben, können Sie Ihre Datenbank(back up your database) ganz einfach online sichern. Die meisten Datenbanken werden auf Linux -Servern ausgeführt – Sie können eine Linux-Dateisicherung einfach automatisieren(automate a Linux file backup easily) . Wenn Sie MySQL unter Windows ausführen(Windows) , können Sie ein ähnliches automatisches Sicherungssystem für Windows(automatic backup system for Windows) einrichten , mit dem Sie Ihre Daten im Notfall wiederherstellen können.



About the author

Ich bin Informatiker mit den Schwerpunkten Datenschutz und Benutzerkonten und Familiensicherheit. Ich habe in den letzten Jahren an der Verbesserung der Smartphone-Sicherheit gearbeitet und habe Erfahrung in der Zusammenarbeit mit Gaming-Unternehmen. Ich habe auch mehrfach über die Probleme im Zusammenhang mit Benutzerkonten und Spielen geschrieben.



Related posts