Estoy experimentando algunos problemas de permisos con mi declaración SELECT ... INTO OUTFILE
.Crear/escribir permisos en MySQL
Cuando registro en mi base de datos y hacer un simple comando de exportación, por ejemplo:
mysql> select * from XYZ into outfile '/home/mropa/Photos/Desktop/TEST.txt';
tengo la responden:
ERROR 1 (HY000):
Can't create/write to file '/home/mropa/Photos/Desktop/TEST.txt'
(Errcode: 13)
Sin embargo, cuando yo simplemente escribo:
mysql> select * from XYZ into outfile 'TEST.txt';
Query OK, 8287 rows affected (0.73 sec)
El archivo está escrito en el directorio /var/lib/mysql/XYZ
. Busqué en el archivo /etc/apparmor.d/usr.sbin.mysqld
donde mysql parece definir los permisos de lectura y escritura, pero realmente no sé cómo modificarlo.
¿Cómo puedo darme permiso para exportar una tabla mysql a cualquier directorio que me guste?
@dnagirl por lo general comienzo mysql con el comando 'mysql -u mropa -p' entonces el usuario es 'mropa' que debería tener permisos de escritura. ¿Puedes elaborar tu respuesta un poco más, no la comprendo totalmente? Gracias. – mropa
@mropa: no estás iniciando el proceso mysqld cuando haces 'mysql -u mropa -p'. Solo estás iniciando sesión en él. Cuando escribe en archivo externo, no es su usuario de inicio de sesión el que está escribiendo, sino el proceso mysqld. Imagine que inicia sesión en su shell como mropa y luego inicia sesión en mysql como mydb_user. Ni mropa ni mydb_user escriben en el archivo de mysql. El escritor es el dueño del proceso mysqld. – dnagirl
que fue útil, gracias! – mropa