Martins Blog - blog.chmielewski-martin.de -

13Feb/102

MySQL: ERROR 1018 (HY000): Can’t read dir of ‘./DATABASE/’ (errno: 13)

Soeben ist auf einer meiner betreuten Webseiten die oben genannte Fehlermeldung aufgetreten. Es wurden mir alle Datenbanken angezeigt, auf die meisten hatte ich auch noch den üblichen Zugriff. HeidiSQL und phpMyAdmin machten den Anschein, als ob die darin enthaltenen Tabellen nicht mehr existieren würden. Also habe ich ein Backup zurückspielen wollen, was mir jedoch mit der Fehlernummer 13 quittiert wurde.

Über die Shell habe ich dann folgendes ausgeführt:

Code   
  1. mysql -p;
  2. use DATABASE;
  3. show tables;

Mit Ausführen des letzten Befehls wurde mir dann immerhin schon mehr als nur eine Fehlermeldung an den Kopf geworfen: "ERROR 1018 (HY000): Can't read dir of './DATABASE/' (errno: 13)". Der Benutzer, der den MySQL-Prozess ausführt, hat keinen Lesezugriff. Angenommen, dieser Benutzer heißt "mysql" (zugeordnete Gruppe ebenfalls "mysql"), hilft folgender Code, das Problem zu lösen:

Code   
  1. cd /var/lib/mysql/
  2. chown -R mysql:mysql DATABASE

Somit werden die Datenbank Files wieder dem Benutzer "mysql" aus der Gruppe "mysql" zugeordnet und sind wieder lesbar. Es ist darauf zu achten, dass der Besitzer der Dateien Lese-, Schreib- und Ausführungsrechte besitzt!

Kommentare (2) Trackbacks (0)
  1. Der Fehler 13 scheint mir immer nen Rechteproblem zu sein, hatte sowas ähnliches mal bei Apache. Gut zu wissen ;)

    Viele Grüße,
    Uli

  2. Wie der Fehler genau entstand, konnte ich jedoch leider nicht nachvollziehen.

    BTW: Eine “Dirty” Lösung hätte es auch noch gegeben (aber nicht empfehlenswert):

    chmod -R 777 DATABASE


Kommentar schreiben


Noch keine Trackbacks.