Posteriormente a consultar expertos en la materia, programadores de diversas ramas y maestros hemos dado con la solución a la pregunta y la compartimos en este post.
Solución:
Deberías editar tu my.cnf
tmpdir = /whatewer/you/want
y luego reinicia mysql
PD No olvides dar permisos de escritura a /whatewer/you/want
para usuario mysql
Aquí hay un ejemplo para mover mysqld tmpdir de /tmp a /run/mysqld que ya existe en Ubuntu 13.04 y es un tmpfs (memoria/ram):
sudo vim /etc/mysql/conf.d/local.cnf
Agregar:
[mysqld]
tmpdir = /run/mysqld
Luego:
sudo service mysql restart
Verificar:
SHOW VARIABLES LIKE 'tmpdir';
================================================== ================
Si recibe un error al reiniciar MySQL, es posible que tenga habilitado AppArmor:
sudo vim /etc/apparmor.d/local/usr.sbin.mysqld
Agregar:
# 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,
Luego:
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_y_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 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 verifica los restantes. Si no se configuran TMPDIR, TEMP o TMP, MySQL usa el valor predeterminado del sistema de Windows, que generalmente es C:windowstemp.
Recuerda que puedes dar recomendación a esta sección si te valió la pena.