Nie można utworzyć / zapisać do pliku „/tmp/#sql_xxxx.MYI” (kod błędu: 13)

9

Zainstalowałem Debian Lenny, PHPmyadmin i Postfix.

Podczas korzystania z graficznego interfejsu użytkownika PHPmyadmin i uzyskiwania dostępu do dowolnej tabeli z danymi otrzymuję:

Nie można utworzyć / zapisać do pliku „/tmp/#sql_xxxx.MYI” (kod błędu: 13)

robi perror 13 mówi:

OS error code  13:  Permission denied

Uważam, że tmpdir lubię:

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

Oznacza to, że mysql nie może pisać do / tmp. Zezwolenie na: 777 to naprawia. Ale nie czuję się dobrze, muszę to zrobić. Czy istnieje lepszy sposób / poprawka?

Czy powinienem zmienić wartość tmpdir w /etc/mysql/my.cnf?

Cudos
źródło
dzięki za włączenie wyjścia mysqladmin. Użyłem tego teraz, aby przekazać dedykowany tmpdir dla mysql, dodając trochę bezpieczeństwa.
Florian Heigl

Odpowiedzi:

20

Wygląda na to, że twoje uprawnienia do / tmp są nieprawidłowe. Naprawdę powinny być one do odczytu / zapisu / wykonywania dla każdego z lepkim zestawem bitów.

chmod 1777 /tmp

Lepki bit wprowadza pewne ograniczenia w interakcji innych użytkowników z plikami, które nie zostały utworzone lub nie są przez nich własnością, więc nie ma powodu się martwić.

Jeśli chcesz, możesz także utworzyć oddzielny katalog będący własnością i zapisywalny przez użytkownika mysql oraz określić ten katalog w pliku my.cnf, który będzie używany zamiast system wide / tmp.

Roy
źródło
Dziękuję bardzo za to: „chmod 1777 / tmp” lepki bit 1 był czymś, czego nie wiedziałem i zabił mnie, ponieważ straciłem dużo czasu na to, nie wiedząc, dlaczego. Teraz robię Dzięki za opublikowanie tego „chmod 1777 / tmp”
3

Normalnie katalog / tmp jest dostępny do zapisu dla wszystkich. Nie powinieneś się tym przejmować. Dodatkowo bit lepki jest ustawiony, więc tylko root i właściciel pliku może usunąć ten plik.

chmod 777 / tmp
chmod o + t / tmp

Miłego dnia

żarcie
źródło
czy ktoś zna liczbę ósemkową lepkiego bitu?
grub
Tak, to 1 na ósemce.
Roy,