Exportando resultados de SQL, teniendo problemas con los permisos.
Estoy teniendo problemas de permisos con mariadb al exportar un resultado sql.
select * from referalList
INTO OUTFILE '/home/joe/testOutFileReferalList.csv';
Error SQL [1] [HY000]: (conn=63) No se puede crear/escribir en el archivo '/home/joe/testOutFileReferalList.csv' (Errcode: 13 "Permiso denegado")
Estoy usando DBeaver como frente. Pero obtengo el mismo resultado con la CLI sin embargo me conecte con:
sudo mysql -u root -p
sudo mysql -u joe -p
mariadb -u joe -p
etc.
con o sin sudo…
Entonces, sin una ruta, la ejecución de sql pone el archivo en /var/lib/mysql/referals/ (referals es el nombre de mi db).
select * from referalList
INTO OUTFILE 'testOutFileReferalList.csv';
Se crea con permisos de mysql:mysql.
Tengo que cambiar los permisos en cada resultado SQL que exporto. ¿Cómo puedo hacer para que los permisos sean míos, es decir, joe:joe? ¿Y cómo puedo exportar archivos a cualquier lugar que desee, como mi directorio de inicio ~?
Además, ¿hay alguna manera de hacer que mariadb sobrescriba un archivo si ya existe?
La versión de mariadb es:
Versión del servidor: 10.6.5-MariaDB-1:10.6.5+maria~focal distribución binaria de mariadb.org
Estoy en Linux Ubuntu 20.04.4
Gracias,
davy.ai
Como experto en IT especializado en MySQL y permisos de usuario, puedo sugerir las siguientes soluciones para los problemas de permisos que se encuentran al exportar resultados de SQL en MariaDB:
Esto permitirá al usuario joe escribir en el directorio
/home/joe/
. Puede reemplazar/home/joe/
por cualquier otro directorio donde desee exportar el archivo.Conceda permisos de archivo al usuario joe en el servidor de MariaDB:
GRANT FILE ON *.* TO 'joe'@'localhost';
Esto concederá el privilegio FILE al usuario joe en el servidor de MariaDB, permitiéndole escribir archivos en el sistema de archivos del servidor. Reemplace ‘localhost’ con el nombre de host o la dirección IP de su servidor de MariaDB.
Use la opción
IF NOT EXISTS
para sobrescribir el archivo si ya existe:Esto sobrescribirá el archivo existente si ya existe.
Espero que estas soluciones le ayuden a resolver sus problemas de permisos.