Datei '/tmp/#sql_xxxx.MYI' kann nicht erstellt / geschrieben werden (Fehlercode: 13)

9

Ich habe Debian Lenny, PHPmyadmin und Postfix installiert.

Wenn Sie die PHPmyadmin-Benutzeroberfläche verwenden und auf eine Tabelle mit Daten zugreifen, erhalten Sie:

Datei '/tmp/#sql_xxxx.MYI' kann nicht erstellt / geschrieben werden (Fehlercode: 13)

Perror 13 macht sagt:

OS error code  13:  Permission denied

Ich finde das tmpdir so:

mysqladmin -p variables | grep -w tmpdir
| tmpdir                          | /tmp

Das bedeutet, dass MySQL nicht in / tmp schreiben kann. Durch das Erstellen der Berechtigungen für: 777 wird dies behoben. Aber ich fühle mich nicht richtig, das muss ich tun. Gibt es einen besseren Weg / Fix?

Soll ich den Wert tmpdir ändern /etc/mysql/my.cnf?

Cudos
quelle
Vielen Dank für die Aufnahme der mysqladmin-Ausgabe. Ich habe dies jetzt verwendet, um ein dediziertes tmpdir für MySQL zu spenden und ein wenig Sicherheit hinzuzufügen.
Florian Heigl

Antworten:

20

Es sieht so aus, als ob Ihre Berechtigungen für / tmp falsch sind. Sie sollten wirklich für alle gelesen / geschrieben / ausgeführt werden, bei denen das Sticky-Bit gesetzt ist.

chmod 1777 /tmp

Das Sticky-Bit fügt einige Einschränkungen für die Interaktion anderer Benutzer mit Dateien hinzu, die nicht von ihnen erstellt wurden oder deren Eigentümer sie sind. Es besteht also kein Grund zur Sorge.

Wenn Sie möchten, können Sie auch ein separates Verzeichnis erstellen, das dem mysql-Benutzer gehört und von diesem beschrieben werden kann, und dieses Verzeichnis in my.cnf angeben, das anstelle des systemweiten / tmp verwendet werden soll.

Roy
quelle
Vielen Dank dafür: "chmod 1777 / tmp" Das klebrige Bit 1 war etwas, das ich nicht wusste und es hat mich umgebracht, weil ich viel Zeit verloren habe, ohne zu wissen warum. Jetzt mache ich Danke für das Posten dieses "chmod 1777 / tmp"
3

Normalerweise ist das Verzeichnis / tmp für alle beschreibbar. Sie sollten sich darüber keine Sorgen machen. Zusätzlich wird das Sticky-Bit gesetzt, sodass nur root und der Eigentümer einer Datei diese Datei löschen können.

chmod 777 / tmp
chmod o + t / tmp

Einen schönen Tag noch

roden
quelle
Kennt jemand die Oktalzahl für das klebrige Bit?
Grub
Ja, es ist 1 im ersten Oktal.
Roy