Um eine Remote-Verbindung zum MySQL-Server zu ermöglichen, muss Port 3306 für den Zugriff geöffnet sein und die MySQL-Konfiguration so eingestellt sein, dass sie externe Verbindungen akzeptiert. Dies geschieht in der Regel, um den Datenzugriff von entfernten Systemen zu ermöglichen oder um Datenbankverbindungen zwischen verschiedenen Servern in Softwareprojekten herzustellen.
1. MySQL-Konfiguration bearbeiten
Verbinden Sie sich per SSH mit Ihrem Server und öffnen Sie die MySQL-Konfigurationsdatei mit dem folgenden Befehl:
nano /etc/my.cnf
Entfernen Sie die folgenden Zeilen, falls vorhanden, oder deaktivieren Sie sie, indem Sie ein #
voranstellen:
bind-address=127.0.0.1
skip-networking
Diese Zeilen stellen sicher, dass MySQL nur Verbindungen von localhost akzeptiert. Sie sollten daher gelöscht werden.
Speichern Sie und beenden Sie (STRG + X > J > Enter).
2. MySQL-Dienst neu starten
service mysqld restart
service mysql restart
Es schadet nicht, beide Dienste auszuführen, falls einer von beiden auf Ihrem System vorhanden ist.
3. Benutzer Remote-Zugriffsberechtigung erteilen
Verbinden Sie sich mit MySQL als Root oder mit einem autorisierten Benutzer:
mysql -u root -p
Erteilen Sie einem Benutzer mit dem folgenden Befehl Remote-Zugriff:
GRANT ALL PRIVILEGES ON *.* TO 'benutzername'@'%' IDENTIFIED BY 'passwort' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Das Zeichen %
erlaubt den Zugriff von allen IP-Adressen. Für eine bestimmte IP-Adresse kann es als 'benutzername'@'ip_adresse'
definiert werden.
4. Port 3306 für CentOS 7 und höher öffnen
firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --reload
Diese Befehle öffnen den TCP-Port 3306 dauerhaft und aktualisieren die Firewall-Einstellungen.
5. Port-Öffnung testen
Sie können mit dem folgenden Befehl von einem Remote-Client aus überprüfen, ob der Port geöffnet ist:
telnet server_ip 3306
oder
nc -zv server_ip 3306
Nach Abschluss dieser Schritte ist Ihr MySQL-Server von entfernten Systemen über Port 3306 erreichbar. Aus Sicherheitsgründen sollten die dem Benutzer erteilten IP-Berechtigungen eingeschränkt und nach Möglichkeit der Zugriff auf den Server nicht direkt aus dem externen Netzwerk, sondern über VPN oder einen Bastion Host erfolgen.