Estou tentando gerar os dados de uma tabela MySQL para um arquivo, mas obtendo erros de permissão:
$ 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>
Se o diretório em questão for chmodded para 777, por que o usuário do MySQL não pode gravar o arquivo? Curiosamente, também não posso gravar em / tmp /.
EDIT: Parece que o usuário do banco de dados tem as permissões adequadas do 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
permissões. Costumo navegar no banco de dados como esse usuário.
FILE
privilégios, conforme descrito pelos documentos do MySQL .
in
é inútil se o MySQL não puder acessardotanchoen
. Em outras palavras, a caixa de depósito de segurança no cofre do banco pode ser deixada aberta, mas se a porta do cofre estiver trancada, você não estará entrando na caixa. Seugs
usuário também deve ter oFILE
privilégio mysql para realmente executar essa consulta.