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.
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.
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
- 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).
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.
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:
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
Verbindung zu MySQL unter Windows herstellen
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.
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.