Ohne MySQL gibt es kaum ein Web-Projekt. Ob CMS, Wiki, Shop oder Portal – meist werden die Daten in einer mysql-Datenbank gespeichert. Auch die von mir verwendete Faktura speichert ihre Daten in einer mysql-Datenbank auf dem Büroserver. Dumm nur, wenn dann plötzlich – wie heute – kein Zugriff auf die Datenbank mehr möglich ist.
Die Ursache lag wohl an einer Änderung des /etc/mysql/my.cnf die mit dem letzten Debian-Upgrade einherging. Genaugenommen stand nun in der Konfigurationsdatei wieder
bind-adress = 127.0.0.1
Was bewirkt der Eintrag? Nicht mehr, als dass der mysql-Server nur von der Maschine selbst auf der er läuft (localhost) aus erreichbar ist. Dies genügt meist, wenn diese Maschine auch der Webserver ist, auf der die Webprojekte php etc. laufen. Denn dann hat der Apache, der mittels eingebundenem php-Modul der Eigentümer der Prozesse ist, die auf mysql zugreifen die gleiche IP wie der mysql-Server.
Doch damit klappt natürlich der Zugriff auf die MySQL-Datenbank von einem anderen Rechner aus nicht – also auch nicht von dem Windows-Client an dem ich arbeite. Nun kann man natürlich einfach die Zugriffsbeschränkung deaktivieren und alles klappt wieder (nach einem Reload der Einstellungen in mysql). Doch vorher sollte man nochmals alle Benutzerrechte an der mysql-Datenbank überprüfen und ggf. korrigieren. Der Zugriff sollte für alle Benutzer immer nur von localhost aus möglich sein, wenn dies für die jeweilige Anwendung genügt. Einen Benutzer root sollte es nicht geben – zumindest sollte er nicht von überall auf die mysql-DB zugreifen können – sicheres Passwort hin oder her!
Doch man sollte sich natürlich auch nicht – wie ich – durch eine Fehlkonfiguration des mysql-Benutzers root selbst vom Zugriff und der Konfiguration der mysql-Einstellungen aussperren. Falls dies doch passiert hilft folgendes vorgehen:
- mysqld stoppen (via Prozess-ID)
- unter Debian (3.1)
/usr/bin/mysqld_safe -user=root --pid-file=/var/run/mysqld/mysqld.pid --skip-grant-tables
um hierdurch die Rechteeinstellungen zu übergehen.
ACHTUNG: NUN DARF JEDER ALLES – DIESER ZUSTAND SOLLTE MÖGLICHST ERST NACH EINER UNTERBRECHUNG DER INTERNETVERBINDUNG HERGESTELLT WERDEN!
- Nun aber schnell die Benutzerrechte wieder in Ordnung bringen und den msql-Server neu „normal“starten!