GNU/Linux >> Tutoriales Linux >  >> Linux

No se pueden enviar datos de MySQL a un archivo

De acuerdo con la documentación de MySQL en SELECCIONAR ... EN OUTFILE

Cualquier archivo creado por INTO OUTFILE o INTO DUMPFILE puede ser escrito por todos los usuarios en el host del servidor. La razón de esto es que el servidor MySQL no puede crear un archivo que sea propiedad de alguien que no sea el usuario bajo cuya cuenta se está ejecutando. (Nunca debe ejecutar mysqld como root por esta y otras razones.) Por lo tanto, el archivo debe poder escribirse en todo el mundo para que pueda manipular su contenido.

Debe generar el SELECT INTO OUTFILE a /var/lib/mysql de la siguiente manera

SELECT * FROM data INTO OUTFILE 'data.csv';

Por supuesto, debe asegurarse de tener permiso de ARCHIVO en [email protected]

Hay dos formas de obtener este permiso

MÉTODO #1

GRANT FILE ON *.* TO 'gs'@'localhost';

MÉTODO #2

UPDATE mysql.user SET File_priv = 'Y' WHERE user='gs' AND host='localhost';
FLUSH PRIVILEGES;

ACTUALIZACIÓN 2012-05-01 07:09 EDT

Para otorgarse el privilegio de ARCHIVO, haga lo siguiente:

service mysql restart --skip-networking --skip-grant-tables
mysql <hit enter>
UPDATE mysql.user SET File_priv = 'Y' WHERE user='gs' AND host='localhost';
exit
service mysql restart

Linux
  1. ¿Cómo almacenar la salida de SHOW PROCESSLIST en un archivo en MySQL?

  2. ¿Sintaxis del archivo de configuración Loggedfs?

  3. ¿Redirigir y canalizar la salida?

  4. ¿Ocultar datos en los sistemas de archivos?

  5. ¿Cómo agregar la salida a un archivo?

Tipos de datos MySQL

Bash:escribir en archivo

PHP MySQL Seleccionar datos

¿Reemplazar datos entre comillas en un archivo?

¿Recuperación de datos ext4?

mejorar la velocidad de importación mysql