So erlauben Sie Remoteverbindungen zu MySQL


Wenn Sie mit einer MySQL-Datenbank arbeiten, kennen Sie bereits die Herausforderungen, mit denen Sie bei der Sicherung Ihrer Datenbank konfrontiert sind. 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 Remote-Verbindungen zugelassen werden , aber Sie müssen vorsichtig sein, da das Zulassen von Remoteverbindungen auf einem MySQL-Server Ihre Datenbank zu einem leichten Ziel für Hacker machen kann. Wenn Sie sichere Remoteverbindungen zu einer MySQL-Datenbank zulassen möchten, müssen Sie Folgendes wissen.

Inhaltsverzeichnis

    Bevor Sie Beginnen

    Bevor Sie Änderungen an Ihrer MySQL-Datenbank vornehmen, ist es wichtig, dass Sie Ihre Datenbank sichern, insbesondere wenn Sie auf einem Produktionsserver (einem Server im aktiven Einsatz). Alle Änderungen, die Sie an Ihrer Datenbank oder dem Server, der sie hostet, vornehmen, können bei einem Fehler zu ernsthaften Datenverlusten führen.

    Sie werden möglicherweise auch feststellen, dass Änderungen an den Verbindungen Ihres Servers Sie später daran hindern können, darauf zuzugreifen. In diesem Fall müssen Sie sich möglicherweise an einen Serveradministrator wenden, um weitere Unterstützung zu erhalten. Eine gute Idee ist es, 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 versuchen.

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

    Diese Anleitung führt Sie durch die Schritte zu MySQL so konfigurieren, dass Remote-Verbindungen zugelassen werden, Sie müssen jedoch zuerst sicherstellen, dass Sie direkten oder Remote-Zugriff auf den Server haben, der Ihren MySQL-Server hostet.

    Angenommen, Sie haben keinen Remote-Zugriff auf Ihren Server über SSH (zum Beispiel). In diesem Fall können Sie Ihre 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 also zuerst diese Verbindung herstellen, bevor Sie fortfahren können.

    Bearbeiten Ihrer MySQL-Konfigurationsdatei

    Der erste Schritt bei der Konfiguration von MySQL für die Remote-Zulassung Connections besteht darin, Ihre MySQL-Konfigurationsdatei zu bearbeiten. Zu diesem Zeitpunkt wird in diesem Handbuch davon ausgegangen, dass Sie bereits eine Remoteverbindung mit dem Server, PC oder Mac hergestellt haben, der Ihre mySQL-Datenbank hostet, und Zugriff auf die Konsole haben.

    Alternativ können Sie einen lokalen 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.cnfin 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, öffnen Sie den Datei-Explorer und greifen Sie auf den Ordner mit Ihrer MySQL-Installation zu (z. B. C:/Programme/MySQL/MySQL Server 8.0). Öffnen Sie die Datei my.inimit Ihrem Standard-Texteditor (z. B. Notepad), indem Sie auf den Eintrag doppelklicken. Wenn es nicht vorhanden ist, zuerst die Datei erstellen.
        1. Öffnen Sie auf einem Mac ein Terminalfenster und geben Sie sudo nano /usr/local/etc/my.cnfein. Dies ist die Standardkonfigurationsdatei für MySQL, wenn Sie MySQL mit Homebrew installiert haben.
        2. Die oben genannten Speicherorte sind die Standardspeicherorte für MySQL-Konfigurationsdateien. Wenn diese Befehle nicht funktionieren, müssen Sie nach den entsprechenden Dateien suchen (my.cnf, mysqld.cnfoder my.ini) manuell, um den entsprechenden Dateipfad zu finden.

          Einrichten eines sicheren IP-Bereichs für die Bindungsadresse

          1. Sobald Sie Nachdem Sie die MySQL-Konfigurationsdatei für Ihren Server geöffnet haben, verwenden Sie die Pfeiltasten Ihrer Tastatur, um zum Abschnitt bind-addressder Datei zu gelangen. 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.1zugelassen werden.
            1. Wenn Sie Ihre MySQL-Datenbank so konfigurieren möchten, dass Verbindungen von Geräten mit Ihrer aktuellen Internetverbindung zugelassen werden, finde deine öffentliche IP-Adresse zuerst und dann 127.0.0.1 . ersetzenmit dieser IP-Adresse. Ersetzen Sie sie 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 vielleicht alleRemote-Verbindungen zu einer MySQL-Datenbank zulassen. Dies birgt ein extremes Risikound sollte nicht auf einem Produktionsserver verwendet werden. Wenn Sie dies jedoch zulassen möchten, ersetzen Sie 127.0.0.1durch 0.0.0.0.
                1. Notieren Sie sich den Wert Portim Abschnitt Grundeinstellungen. Dies wird im nächsten Abschnitt benötigt. Wenn es nicht sichtbar ist, wird der Standardwert verwendet, der Port 3306ist. Sie können Ihren eigenen Port hinzufügen, indem Sie in einer neuen Zeile port = xxxxeingeben und xxxxdurch einen geeigneten Port-Wert ersetzen.
                  1. Sobald Sie die Bind-Adressein Ihrer MySQL-Konfigurationsdatei konfiguriert haben, speichern Sie die Datei. Unter Linux wählen Sie dazu Strg + Ound Strg + X. Wählen Sie auf einem Mac Befehl + Ound Befehl + Xaus. Windows-Benutzer können speichern, indem sie Datei>Speichernauswählen.
                    1. Als nächstes können Linux- und Mac-Benutzer MySQL neu starten, indem sie mysql.server stop && mysql.server startoder mysql.server restarteingeben. Möglicherweise müssen Sie den Befehl mit sudo erhöhen (z. B. sudo mysql.server restart) und den entsprechenden Pfad zur mysql.server-Datei 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 unter Windows neu zu starten, öffnen Sie ein neues PowerShell-Fenster, indem Sie mit der rechten Maustaste auf das Startmenü klicken und Windows PowerShell (Admin). Geben Sie im PowerShell-Fenster net stop mysql80gefolgt von net start mysql80ein und ersetzen Sie dabei mysql80durch den korrekten Dienstnamen auf Ihrem PC.
                      2. Wenn Sie den richtigen Dienstnamen unter Windows nicht kennen, geben Sie net startein, um ihn zu finden.Wenn Sie Ihre Konfiguration nicht neu laden können, starten Sie Ihren Server neu und laden Sie MySQL (falls erforderlich) stattdessen manuell neu.

                        Konfigurieren Ihrer Firewalls

                        Zu diesem Zeitpunkt Ihre MySQL-Datenbank sollte 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 auf 0.0.0.0 . setzen).stattdessen). Verbindungen werden jedoch weiterhin von Ihrer Geräte- oder Netzwerk-Firewallblockiert.

                        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. Mac-Firewalls sind standardmäßig deaktiviert, sodass Sie hier keine zusätzlichen Schritte ausführen müssen.

                        Linux-Firewalls konfigurieren

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

                        1. Öffnen Sie eine Terminal- oder SSH-Verbindung und geben Sie sudo iptables -A INPUT -p tcp -s XXXX –dport YYYY -j ACCEPT. Ersetzen Sie XXXXdurch die IP-Adresse des Geräts, von dem Sie MySQL-Verbindungen vonzulassen möchten, und ersetzen Sie YYYYdurch den entsprechenden Portwert aus Ihrer MySQL-Konfiguration Datei (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 saveund sudo netfilter-persistent reloadin das Terminal oder SSH . eingeben Fenster.
                          2. 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 (wie 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).

                            Windows-Firewalls konfigurieren

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

                            1. Klicken Sie mit der rechten Maustaste auf das Startmenü und wählen Sie Ausführen.
                              1. Geben Sie im Feld Ausführenwf.mscein und wählen Sie OK.
                                1. Wählen Sie im Fenster Windows Defenderdie Option Eingehende Regeln >Neue Regel.
                                  1. Im Assistenten für neue eingehende Regeln-Fenster, wählen Sie Port>Weiter.
                                    1. Wählen Sie im nächsten Menü TCPaus den Optionen, geben Sie 3306ein (oder den Portwert, der in Ihrer MySQL-Konfigurationsdatei aufgeführt ist), und wählen Sie dann Weiter.
                                      1. Belassen Sie im Menü Aktiondie Standardoption auf Verbindung zulassenaktivieren, dann Weiterauswählen.
                                        1. Bestätigen die Regel für alle Netzwerktypen gelten soll, dann wählen Sie Weiter.
                                          1. Geben Sie einen beschreibenden Namen für die Regel (z. B. MySQL) in den bereitgestellten Port ein , und wählen Sie dann Fertig stellenaus, um es zu Ihrer Liste der Firewall-Regeln hinzuzufügen.
                                          2. Wenn Sie Probleme mit der Verbindung haben, wiederholen Sie diese Schritte oben , und stellen Sie sicher, dass Sie in Ihren Firewall-Einstellungen eine neue ausgehende Regelmit denselben Angaben erstellen (Port 3306 usw.). Möglicherweise müssen Sie auch Ihren lokalen Netzwerkrouter auf öffne die notwendigen gesperrten Ports konfigurieren, um eingehende und ausgehende Verbindungen zu Ihrer Datenbank zuzulassen.

                                            Verbindung zu einem Remote-Server mithilfe von MySQL

                                            Nachdem Sie Ihre MySQL-Datenbank so konfiguriert haben, dass Remote-Verbindungen zugelassen werden, müssen Sie tatsächlich eine Verbindung herstellen. Sie können dies mit dem Befehl mysql(mysql.exeunter Windows) in einem Terminal- oder PowerShell-Fenster tun.

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

                                            Verbindung zu MySQL unter Linux oder Mac herstellen

                                            1. Um eine Verbindung zu Ihrem entfernten MySQL-Server auf einem Mac herzustellen oder Linux, öffnen Sie ein neues Terminalfenster und geben Sie mysql -u Benutzername -h XXXX:XXXX -pein. Ersetzen Sie XXXX:XXXXdurch Ihre Remote-Server-IP-Adresse und Portnummer (z. B. 100.200.100.200:3306) und Benutzernamedurch Ihren MySQL-Benutzernamen.
                                              1. Bestätigen Sie Ihr Passwort, wenn Sie dazu aufgefordert werden. Wenn die Verbindung erfolgreich ist, wird im Terminal eine Erfolgsmeldung angezeigt.
                                              2. Verbindung zu MySQL unter Windows herstellen

                                                1. Verbindung herstellen zu einem Remote-MySQL-Server unter Windows öffnen Sie ein neues PowerShell-Fenster, indem Sie mit der rechten Maustaste auf das Startmenü klicken und 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 dieses Verzeichnis zu ersetzen mit dem richtigen 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 von dort aus .\mysql.exe -u Benutzername -h X.X.X.X:XXXX -pein. Ersetzen Sie XXXX:XXXXdurch Ihre Remote-Server-IP-Adresse und Portnummer (z. B. 100.200.100.200:3306) und Benutzernamedurch einen MySQL-Benutzernamen, der ermöglicht den Fernzugriff (z. B. root). Befolgen Sie alle zusätzlichen 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.
                                                    3. Wenn dies nicht funktioniert, verbinden Sie sich mit SSH mit dem Server oder PC, der Ihren MySQL-Server hostet (oder greifen Sie direkt darauf zu), indem Sie diese Schritte und das Argument -h localhostverwenden. Sie können dann ein geeignetes Benutzerkonto erstellen, indem Sie die folgenden Schritte ausführen.

                                                      Remote-Benutzerzugriff auf eine MySQL-Datenbank zulassen

                                                      An diesem Punkt sollten Sie in der Lage, 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. Ernstere Änderungen wie der Zugriff auf andere Datenbankdaten, das Erstellen neuer Benutzerkonten usw. können nicht vorgenommen werden. 

                                                      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 Befehl mysqlüber eine Remote-SSH-Verbindung oder direkt auf den PC oder Server, der den Server hostet, auf die Shell Ihres Servers zugreifen.

                                                      1. Geben Sie in Ihrer Remote-MySQL-Shell (mit dem Tool mysql) BENUTZER BENUTZER BENUTZER "Benutzername"@"xxxx" IDENTIFIED BY "password" ein;und wählen Sie Eingabe. Ersetzen Sie Benutzernamedurch den Benutzernamen, den Sie erstellen möchten, xxxxdurch die IP-Adresse, von der aus Sie eine Verbindung herstellen möchten, und Passwortdurch 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” ein;und ersetzen Sie Datenbankname, Nutzername,und x.x.x.x durch die richtigen Details. Wenn Sie möchten, ersetzen Sie Datenbanknamedurch *, um ihm Zugriff auf alle Datenbanken zu gewähren.
                                                        2. Führen Sie bei gewährtem Zugriff die Schritte im obigen Abschnitt aus, um eine Remoteverbindung zu Ihrem Server über Ihr neues Konto herzustellen (z. B. mysql -u Benutzername -h XXXX:XXXX -p).

                                                          Sichern Ihrer Datenbankdaten

                                                          Ob Sie mit MySQL oder einem anderen SQL-Typ arbeiten Datenbank ist es wichtig, Ihre Verbindungen zu sichern, um Ihre Datensicherheit zu gewährleisten. Eine gute Möglichkeit, dies zu tun, besteht darin, SSH-Schlüssel für den Fernzugriff generieren auf Ihren Server zuzugreifen, anstatt sich auf veraltete (und leicht zu erratende) Passwörter zu verlassen.

                                                          Wenn Sie einen Datenverlust befürchten, können Sie ganz einfach Sichern Sie Ihre Datenbank online gehen. Die meisten Datenbanken werden mit Linux-Servern ausgeführt – Sie können ein Linux-Datei-Backup einfach automatisieren. Wenn Sie MySQL unter Windows ausführen, können Sie eine ähnliche automatisches Backup-System für Windows einrichten, mit der Sie Ihre Daten im Notfall wiederherstellen können.

                                                          Zusammenhängende Posts:


                                                          9.08.2021