No se puede crear / escribir en el archivo '/tmp/#sql_xxxx.MYI' (Código de error: 13)

9

He instalado Debian Lenny, PHPmyadmin y postfix.

Cuando uso PHPmyadmin GUI y accedo a cualquier tabla con datos, obtengo:

No se puede crear / escribir en el archivo '/tmp/#sql_xxxx.MYI' (Código de error: 13)

haciendo perror 13 dice:

OS error code  13:  Permission denied

Me parece que el tmpdir es así:

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

Ahora eso significa que mysql no puede escribir en / tmp. Hacer los permisos para: 777 corrige eso. Pero no me siento bien, tengo que hacer eso. ¿Hay una mejor manera / solución?

¿Debo cambiar el valor tmpdir /etc/mysql/my.cnf?

Cudos
fuente
gracias por incluir la salida de mysqladmin. Ahora he usado esto para donar un tmpdir dedicado para mysql, agregando un poco de seguridad.
Florian Heigl

Respuestas:

20

Parece que tus permisos en / tmp son incorrectos. Realmente deberían ser de lectura / escritura / ejecución para todos con el conjunto de bits fijos.

chmod 1777 /tmp

La parte adhesiva agrega algunas restricciones a la forma en que otros usuarios interactúan con archivos no creados o de su propiedad, por lo que no hay razón para preocuparse.

Si lo desea, también puede crear un directorio separado propiedad y escritura del usuario de mysql y especificar ese directorio en my.cnf para ser utilizado en lugar del sistema wide / tmp.

Roy
fuente
Muchas gracias por esto: "chmod 1777 / tmp" el bit 1 adhesivo era algo que no sabía y me mató porque perdí mucho tiempo en esto sin saber por qué. Ahora sí, gracias por publicar este "chmod 1777 / tmp"
3

Normalmente, el directorio / tmp se puede escribir para todos. No deberías preocuparte por esto. Además, el bit fijo se establece para que solo el usuario root y el propietario de un archivo puedan eliminar ese archivo.

chmod 777 / tmp
chmod o + t / tmp

Que tengas un buen día

comida
fuente
¿Alguien sabe el número octal para el bit pegajoso?
comida de
Sí, es 1 en el primer octal.
Roy