MySQL von remote

Aus Triopsi Hosting Wiki
Zur Navigation springen Zur Suche springen

Um eine MySQL(MariaDB) Datenbank von außen zu steuern muss man folgende Schritte machen:

Schritt 1

Die /etc/mysql/mariadb.conf.d/50-server.cnf öffnen und die bin-variable ändern. Variable bind-address = 127.0.0.1 suchen und in so abändern:

bind-address = 0.0.0.0

Schritt 2:

Den MySQL Server neu starten:

 sudo systemctl restart mariadb

Schritt 3:

Wir verifizieren unserer Änderung mit einem Port Scan.

netstat -ant | grep 3306

es sollte wie folgt aussehen:

tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN

Sollte es nicht so aussehen, dann muss nochmals die Konfiguration gesucht werden. Bei MySQL Servern könnte es unter /etc/mysql/mysql.conf.d/mysqld.cnf liegen.

Schritt 4:

Nachdem wir den Dienst für die Außenwelt freigeschaltet haben, müssen wir nun den Benutzer die nötigen rechte vergeben. Diese machen wir direkt mit dem mysql client.

Wir loggen uns in die shell ein:

mysql -u root

Nun müssen wir dem entsprechenden Benutzer die Rechte vergeben. In diesem Fall vergeben wir direkt dem Root User alle Rechte. ACHTUNG! Dies sollte immer nur mit bedacht freigegeben werden. Es ist zu empfehlen ein gesonderten Benutzer anzulegen und diesem nur die entsprechenden Rechte geben.

MariaDB [(none)]> GRANT ALL ON *.* to 'root'@'%' IDENTIFIED BY '<new password>' WITH GRANT OPTION;

Dann aktivieren wir die rechte mit einem flush.

MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> EXIT;

Fertig. Nun könnten wir uns von extern mit dem Root User alle Datenbanken ansehen.

Optionaler Schritt

Ggf. müssen wir noch den Port freigeben.

ufw allow 3306