Get Adobe Flash player

mysql-Datenbankzugriff — ausgesperrt

Ohne MySQL gibt es kaum ein Web-Projekt. Ob CMS, Wiki, Shop oder Por­tal — meist wer­den die Daten in einer mysql-Datenbank gespei­chert. Auch die von mir ver­wen­dete Fak­tura spei­chert ihre Daten in einer mysql-Datenbank auf dem Büro­ser­ver. Dumm nur, wenn dann plötz­lich — wie heute — kein Zugriff auf die Daten­bank mehr mög­lich ist.

Die Ursa­che lag wohl an einer Ände­rung des /etc/mysql/my.cnf die mit dem letz­ten Debian-Upgrade ein­her­ging. Genau­ge­nom­men stand nun in der Kon­fi­gu­ra­ti­ons­da­tei wieder

bind-adress = 127.0.0.1

Was bewirkt der Ein­trag? Nicht mehr, als dass der mysql-Server nur von der Maschine selbst auf der er läuft (local­host) aus erreich­bar ist. Dies genügt meist, wenn diese Maschine auch der Web­ser­ver ist, auf der die Web­pro­jekte php etc. lau­fen. Denn dann hat der Apa­che, der mit­tels ein­ge­bun­de­nem php-Modul der Eigen­tü­mer der Pro­zesse ist, die auf mysql zugrei­fen die glei­che IP wie der mysql-Server.

Doch damit klappt natür­lich der Zugriff auf die MySQL-Datenbank von einem ande­ren Rech­ner aus nicht — also auch nicht von dem Windows-Client an dem ich arbeite. Nun kann man natür­lich ein­fach die Zugriffs­be­schrän­kung deak­ti­vie­ren und alles klappt wie­der (nach einem Reload der Ein­stel­lun­gen in mysql). Doch vor­her sollte man noch­mals alle Benut­zer­rechte an der mysql-Datenbank über­prü­fen und ggf. kor­ri­gie­ren. Der Zugriff sollte für alle Benut­zer immer nur von local­host aus mög­lich sein, wenn dies für die jewei­lige Anwen­dung genügt. Einen Benut­zer root sollte es nicht geben — zumin­dest sollte er nicht von über­all auf die mysql-DB zugrei­fen kön­nen — siche­res Pass­wort hin oder her!

Doch man sollte sich natür­lich auch nicht — wie ich — durch eine Fehl­kon­fi­gu­ra­tion des mysql-Benutzers root selbst vom Zugriff und der Kon­fi­gu­ra­tion der mysql-Einstellungen aus­sper­ren. Falls dies doch pas­siert hilft fol­gen­des vorgehen:

  1. mys­qld stop­pen (via Prozess-ID)
  2. unter Debian (3.1)
     /usr/bin/mysqld_safe -user=root --pid-file=/var/run/mysqld/mysqld.pid --skip-grant-tables

    um hier­durch die Rech­te­ein­stel­lun­gen zu übergehen.

    ACHTUNG: NUN DARF JEDER ALLES — DIESER ZUSTAND SOLLTE MÖGLICHST ERST NACH EINER UNTERBRECHUNG DER INTERNETVERBINDUNG HERGESTELLT WERDEN!

  3. Nun aber schnell die Benut­zer­rechte wie­der in Ord­nung brin­gen und den msql-Server neu „normal„starten!

Kommentieren

Kategorien
Metropolregion N
Suche auf regio­na­len Web­sei­ten im Raum Nürnberg.
Loading