Debian – MySQL externen Zugriff konfigurieren
Unter Debian den externen Zugriff auf MySQL konfigurieren ist recht einfach, aber da ich es immer wieder vergesse ;-) schreib ich es einfach mal auf.
1. MySQL extern erlauben
Die MySQL-Konfiguration my.cnf öffnen
debian: nano /etc/mysql/my.cnf
Unter alten Versionen von Debian Linux einfach SkipNetworking auskommentieren
#SkipNetworking
Bei aktuellen Versionen muss bind-address auskommentiert werden
#bind-address = 127.0.0.1
oder ihr setzt den Wert auf der Server-IP-Adresse. In meinem Beispiel wäre das 192.168.1.20
Nun wird Strg+o plus Return gespeichert und Nano mit Strg+x geschlossen.
Nach einem Neustart von MySQL ist externe MySQL-Zugriff erlaubt!
debian: /etc/init.d/mysql restart
Kleiner Test von MySQL
Auch lokal lässt sich der Zugriff testen. Auf
telnet localhost 3306
sollte auch keine Fehlermeldung kommen, wenn der externe MySQL-Zugriff nicht erlaubt ist. Wenn man aber die eigene Domain oder IP-Adresse zum testen nutzt
telnet 192.168.1.20 3306
dann zeigt sich, ob der Debian Server extern MySQL erlaubt.
2. Benutzer-Berechtigungen
Root darf eh alles, aber normale MySQL-Benutzer brauchen die Berechtigung für den externen Zugriff. Update 2012/07: In neueren Versionen darf Root auch nicht auf den Server zugreifen. Hier eine kleine aber nicht sichere, sondern nur eine Lösung für Testumgebungen:
MySQL-Server Konsole:
update user set host=’%‘ where user=’root‘;
MySQL-Server: flush privileges;
exit;Und setzt hinterher zumindest für MySQL ein neues Root-Passwort:
mysqladmin –user=root –password=<altes_pw> password <neues_pw>
Ok, auf die Schnelle einen MySQl-Benutzer anlegen.
Login
debian: mysql -p
In mysql direkt SQL-Befehle rein. Benutzer anlegen.
mysql > CREATE USER ‚Benutzer1’@’192.168.1.20‘ IDENTIFIED BY ‚Passwort‘;
MySQL-Datenbank anlegen:
mysql > create database meineDB;
Nun noch die externe Zugangsberechtigung für Nutzer und Datenbank konfigurieren.
mysql > GRANT ALL ON meineDB.* TO Benutzer1@’192.168.1.20′ IDENTIFIED BY ‚Passwort‘;
Anmerkung: Wenn der Benutzer noch kein Passwort hat, wie in meinem Fall dann schreibt nichts zwischen die Anführungszeichen.
Nun ein
mysql > flush privileges;
und raus aus MySQL
mysql > exit
So nun sollte der externe Zugriff auf den MySQL-Server fertig konfiguriert sein.