Не удается создать / записать в файл '/tmp/#sql_xxxx.MYI' (код ошибки: 13)

9

Я установил Debian Lenny, PHPmyadmin и postfix.

При использовании PHPmyadmin GUI и доступа к любой таблице с данными я получаю:

Не удается создать / записать в файл '/tmp/#sql_xxxx.MYI' (код ошибки: 13)

выполнение perror 13 говорит:

OS error code  13:  Permission denied

Мне кажется, что tmpdir нравится так:

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

Теперь это означает, что mysql не может писать в / tmp. Разрешение на: 777 исправляет это. Но я не чувствую, что должен это делать. Есть ли лучший способ / исправить?

Должен ли я изменить значение tmpdir в /etc/mysql/my.cnf?

Cudos
источник
спасибо за включение вывода mysqladmin. Я теперь использовал это, чтобы пожертвовать выделенный tmpdir для mysql, добавив немного безопасности.
Флориан Хейгл

Ответы:

20

Похоже, ваши права на / tmp неверны. Они действительно должны быть прочитаны / записаны / выполнены для всех с установленным фиксированным битом.

chmod 1777 /tmp

Фиксатор добавляет некоторые ограничения на то, как другие пользователи взаимодействуют с файлами, не созданными или не принадлежащими им, поэтому нет причин для беспокойства.

При желании вы также можете создать отдельный каталог, принадлежащий и доступный для записи пользователю mysql, и указать этот каталог в my.cnf, который будет использоваться вместо всей системы / tmp.

Рой
источник
Огромное спасибо за это: «chmod 1777 / tmp» - это липкий бит 1, которого я не знал, и он убил меня, потому что я потерял много времени на этом, не зная, почему. Теперь я делаю Спасибо за публикацию этого "chmod 1777 / tmp"
3

Обычно каталог / tmp доступен для записи всем. Вы не должны беспокоиться об этом. Дополнительно устанавливается бит закрепления, поэтому только корень и владелец файла могут удалить этот файл.

CHMOD 777 / TMP
chmod o + t / tmp

Хорошего дня

надрываться
источник
кто-нибудь знает восьмеричное число для липкого бита?
grub
Да, это 1 на первом восьмеричном.
Рой