J'essaie de sortir les données d'une table MySQL dans un fichier mais j'obtiens des erreurs d'autorisation:
$ 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 le répertoire en question est modifié en 777, alors pourquoi l'utilisateur MySQL ne peut-il pas écrire le fichier? Chose intéressante, je ne peux pas non plus écrire dans / tmp /.
EDIT: Il semble que l'utilisateur de la base de données dispose des autorisations MySQL appropriées:
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
autorisations. Je parcours souvent la base de données en tant qu'utilisateur.
FILE
privilèges décrits dans les documents MySQL .
in
est inutile si MySQL ne peut pas y accéderdotanchoen
. En d'autres termes, la boîte de dépôt de sécurité dans le coffre de banque peut être laissée grande ouverte, mais si la porte du coffre de banque est verrouillée, vous n'entrez pas dans la boîte. Votregs
utilisateur doit également disposer duFILE
privilège mysql pour exécuter réellement cette requête.