Não é possível criar / gravar no arquivo '/tmp/#sql_xxxx.MYI' (código de erro: 13)

9

Eu instalei o Debian Lenny, PHPmyadmin e postfix.

Ao usar a GUI do PHPmyadmin e acessar qualquer tabela com dados que recebo:

Não é possível criar / gravar no arquivo '/tmp/#sql_xxxx.MYI' (código de erro: 13)

doing perror 13 diz:

OS error code  13:  Permission denied

Acho o tmpdir lik assim:

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

Agora isso significa que o mysql não pode gravar em / tmp. Tornar as permissões para: 777 corrige isso. Mas não me sinto bem, tenho que fazer isso. Existe uma maneira / correção melhor?

Devo alterar o valor tmpdir /etc/mysql/my.cnf?

Cudos
fonte
obrigado por incluir a saída mysqladmin. Agora eu usei isso para doar um tmpdir dedicado para o mysql, adicionando um pouco de segurança.
Florian Heigl

Respostas:

20

Parece que suas permissões em / tmp estão incorretas. Eles realmente devem ser de leitura / gravação / execução para todos com o conjunto de bits adesivo.

chmod 1777 /tmp

A parte complicada adiciona algumas restrições à maneira como outros usuários interagem com arquivos não criados ou pertencentes a eles, portanto, não há motivo para se preocupar.

Se desejar, você também pode criar um diretório separado de propriedade e gravável pelo usuário mysql e especificar esse diretório no my.cnf para ser usado no lugar do sistema / tmp.

Roy
fonte
Muito obrigado por isso: "chmod 1777 / tmp" o bit 1 pegajoso era algo que eu não sabia e me matou porque perdi muito tempo sem saber por quê. Obrigado por postar este "chmod 1777 / tmp"
3

Normalmente, o diretório / tmp é gravável para todos. Você não deveria se preocupar com isso. Além disso, o bit fixo é definido para que apenas o usuário root e o proprietário de um arquivo possam excluir esse arquivo.

chmod 777 / tmp
chmod o + t / tmp

Tenha um bom dia

grub
fonte
alguém sabe o número octal para o bit pegajoso?
grub
Sim, é 1 no primeiro octal.
216 Roy Roy