files mysql tmp

files - Cambiando la carpeta tmp de mysql



mysql temp files location (4)

Nuestras consultas Mysql utilizan tablas temporales que crean archivos temporales en el proceso. Actualmente los archivos están escritos en / tmp. ¿Cómo se puede cambiar exactamente la ruta de la carpeta temporal en la que mysql escribe?


Aquí hay un ejemplo para mover el directorio tmp mysqld de / tmp a / run / mysqld que ya existe en Ubuntu 13.04 y es un tmpfs (memory / ram):

sudo vim /etc/mysql/conf.d/local.cnf

Añadir:

[mysqld] tmpdir = /run/mysqld

Entonces:

sudo service mysql restart

Último:

SHOW VARIABLES LIKE ''tmpdir'';

================================================== ================

Si recibe un error en el reinicio de MySQL, puede tener habilitado AppArmor:

sudo vim /etc/apparmor.d/local/usr.sbin.mysqld

Añadir:

# Site-specific additions and overrides for usr.sbin.mysqld. # For more details, please see /etc/apparmor.d/local/README. /run/mysqld/ r, /run/mysqld/** rwk,

Entonces:

sudo service apparmor reload

fuentes: http://2bits.com/articles/reduce-your-servers-resource-usage-moving-mysql-temporary-directory-ram-disk.html , https://blogs.oracle.com/jsmyth/entry/apparmor_and_mysql


Debes editar tu my.cnf

tmpdir = /whatewer/you/want

y después de que reinicie mysql

PS No olvide otorgar permisos de escritura a /whatewer/you/want para el usuario mysql


Esto se responde en la documentación:

Donde MySQL almacena archivos temporales

En Unix, MySQL usa el valor de la variable de entorno TMPDIR como el nombre de la ruta del directorio en el que se almacenan los archivos temporales. Si TMPDIR no está configurado, MySQL usa el valor predeterminado del sistema, que generalmente es / tmp, / var / tmp o / usr / tmp.

En Windows, Netware y OS2, MySQL comprueba en orden los valores de las variables de entorno TMPDIR, TEMP y TMP. Para el primero que se encuentra configurado, MySQL lo usa y no comprueba los restantes. Si no se configura TMPDIR, TEMP o TMP, MySQL usa el valor predeterminado del sistema de Windows, que suele ser C: / windows / temp.


Si no tienes problemas con Apparmor o Selinux, pero aún obtienes el código de error 13:

mysql debe poder acceder a la ruta completa. Es decir, todas las carpetas deben ser accesibles a mysql, no solo a la que desea señalar.

ejemplo, intenta usar esto en la configuración de mysql: tmp = /some/folder/on/disk

# will work, as user root: mkdir -p /some/folder/on/disk chown -R mysql:mysql /some # will not work, also as user root: mkdir -p /some/folder/on/disk chown -R mysql:mysql /some/folder/on/disk