Skip to main content

MySQL / MariaDB Verbindung von Außen erlauben

Einleitung

In diesem Beitrag gehe ich kurz darauf ein, wie wir auf unserem Linux Server, auf dem MySQL oder MariaDB läuft, Verbindungen von Außen zulassen. Dies benötigen wir z.B. wenn wir eine Applikation nutzen wollen, die auf einem anderen Server läuft als unsere Datenbank. Dafür müssen wir eine Konfigurationsdatei editieren. 

Bedenke: Eine Eröffnung von neuen Wegen zum Zugriff auf Server stellen immer neue Sicherheitsrisiken dar! Stelle sicher das dass Risiko bekannt ist!

MySQL

Um in MySQL Verbindungen von Außen zu erlauben, müssen wir die Konfigurationsdatei mit einem Editor unserer Wahl öffnen. Ich verwende dazu nano. Dieser ist auf fast allen Linux Distributionen vorinstalliert und lässt sich sehr leicht verwenden. 

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

Dort müssen wir den Punkt bind-address finden. Dort müsste aktuell die localhost Adresse (127.0.0.1) stehen. Diesen Wert ändern wir auf 0.0.0.0, um von allen Servern den Zugriff zu erlauben. Möchten wir aber, dass der Zugriff nur von einem bestimmten Server möglich sein soll, setzen wir dort die IP-Adresse des Servers ein.

#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address            = 0.0.0.0

Zum Schluss müssen wir nur noch den MySQL Service neu starten. Danach sollte eine Verbindung möglich sein.

sudo systemctl restart mysql

MariaDB

In MariaDB funktioniert das fast genauso wie in MySQL. Es verändert sich lediglich nur die Konfigurationsdatei, die wir öffnen und editieren müssen. Ich verwende hier wieder nano, um die Konfigurationsdatei zu öffnen.

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Bei dieser Datei müssen wir auch den Punkt bind-address finden und diese dann auf die IP-Adresse 0.0.0.0 setzen. Natürlich können wir hier auch wieder die IP-Adresse des Servers eintragen, welcher Zugriff auf den SQL Server haben soll. 

Im Anschluss starten wir auch den MySQL Dienst wieder neu. 

sudo systemctl restart mysql