Sto cercando di inviare i dati da una tabella MySQL a un file ma ricevo errori di autorizzazione:
$ 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 la directory in questione è impostata su 777, perché l'utente MySQL non può scrivere il file? È interessante notare che non riesco nemmeno a scrivere in / tmp /.
EDIT: sembra che l'utente DB abbia le autorizzazioni MySQL appropriate:
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)
SELECTpermessi. Naviga spesso nel database come questo utente.
FILEprivilegio come descritto dai documenti MySQL .
inè inutile se MySQL non può accedervidotanchoen. In altre parole, la cassetta del deposito di sicurezza nel caveau della banca può essere lasciata aperta, ma se la porta del caveau della banca è chiusa, non si entra nella scatola. Il tuogsutente deve anche avere ilFILEprivilegio mysql per eseguire effettivamente quella query.