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)
SELECT
permessi. Naviga spesso nel database come questo utente.
FILE
privilegio 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 tuogs
utente deve anche avere ilFILE
privilegio mysql per eseguire effettivamente quella query.