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)
SELECTautorisations. Je parcours souvent la base de données en tant qu'utilisateur.
FILEprivilèges décrits dans les documents MySQL .
inest 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. Votregsutilisateur doit également disposer duFILEprivilège mysql pour exécuter réellement cette requête.