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