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!
Dieser Beitrag wurde unter Linux, MySQL, Systemadministration abgelegt und mit , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

*


Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>