Estoy tratando de enviar los datos de una tabla MySQL a un archivo pero obtengo errores de permiso:
$ pwd
/home/dotancohen
$ mkdir in
$ chmod 777 in/
$ mysql -ugs -p
mysql> USE someDatabase;
mysql> SELECT * FROM data INTO OUTFILE '/home/dotancohen/in/data.csv';
ERROR 1045 (28000): Access denied for user 'gs'@'localhost' (using password: YES)
mysql>
Si el directorio en cuestión está modificado para 777, ¿por qué el usuario de MySQL no puede escribir el archivo? Curiosamente, tampoco puedo escribir en / tmp /.
EDITAR: Parece que el usuario de la base de datos tiene los permisos adecuados de MySQL:
mysql> show grants;
+----------------------------------------------------------------------------------+
| Grants for gs@localhost |
+----------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'gs'@'localhost' IDENTIFIED BY PASSWORD 'somePassword' |
| GRANT ALL PRIVILEGES ON `gs\_%`.* TO 'gs'@'localhost' |
+----------------------------------------------------------------------------------+
2 rows in set (0.01 sec)
SELECT
permisos. A menudo busco en la base de datos como este usuario.
FILE
privilegios tal como lo describen los documentos de MySQL .
in
tiene sentido si MySQL no puede accederdotanchoen
. En otras palabras, la caja de depósito de seguridad en la bóveda del banco se puede dejar abierta de par en par, pero si la puerta de la bóveda del banco está cerrada, no entrará en la caja. Sugs
usuario también debe tener elFILE
privilegio mysql para ejecutar realmente esa consulta.