Outfile è la propria autorizzazione in mysql.
Se hai TUTTO è incluso.
Ma se si dispone di una raccolta sicura come SELECT, INSERT, UPDATE, DELETE, DROP, CREATE, ma non OUTFILE, "in outfile" non funzionerà nelle query.
La ragione di ciò è che l'accesso ai file da MySQL, anche a scopo di scrittura, presenta alcuni rischi per la sicurezza, perché se si accede a un file da autorizzazioni di file basate.
Per aggirare questo problema, è possibile eseguire la query direttamente nell'output di qualsiasi shell/lingua che si sta utilizzando per eseguire sql con.
Ecco un esempio * nix
>$ echo "select count(predicate),subject from TableA group by subject" | mysql -u yourusername -p yourdatabasename > ~/XYZ/outputfile.txt
ma farlo tutto su una riga senza la "\" oppure utilizzare la "\" per sfuggire l'interruzione di riga.
Quello che sta succedendo qui è che stai eseguendo una query nel client mysql e sta sputando il risultato, quindi stai indirizzando l'output su un file. Quindi il file non viene mai chiamato da mysql, viene chiamato dopo mysql runs.
Quindi utilizzare mysql per ottenere le informazioni e quindi scaricare i dati nel file dalla propria shell utente e andrà tutto bene.
Oppure trovare un modo per ottenere il permesso MySQL di outfile, in entrambi i casi.
fonte
2009-03-21 03:26:26
Che cosa stai facendo esattamente? Stai scrivendo i comandi nella console del client mysql o nel terminale di sistema? – Vasil
non programmazione correlata – cletus
Sto scrivendo i comandi attraverso la console MySQL – Arnkrishn