GNU/Linux >> Linux Esercitazione >  >> Linux

Impossibile inviare i dati MySQL al file

Secondo la documentazione MySQL su SELECT ... INTO OUTFILE

Qualsiasi file creato da INTO OUTFILE o INTO DUMPFILE è scrivibile da tutti gli utenti sull'host del server. La ragione di ciò è che il server MySQL non può creare un file di proprietà di chiunque non sia l'utente con il cui account è in esecuzione. (Non dovresti mai eseguire mysqld come root per questo e per altri motivi.) Il file quindi deve essere scrivibile da tutti in modo che tu possa manipolarne il contenuto.

Dovresti emettere SELECT INTO OUTFILE a /var/lib/mysql come segue

SELECT * FROM data INTO OUTFILE 'data.csv';

Ovviamente, devi assicurarti di avere il permesso FILE su [email protected]

Ci sono due modi per ottenere questa autorizzazione

METODO N. 1

GRANT FILE ON *.* TO 'gs'@'localhost';

METODO N. 2

UPDATE mysql.user SET File_priv = 'Y' WHERE user='gs' AND host='localhost';
FLUSH PRIVILEGES;

AGGIORNAMENTO 01-05-2012 07:09 EDT

Per concederti il ​​privilegio FILE, procedi come segue:

service mysql restart --skip-networking --skip-grant-tables
mysql <hit enter>
UPDATE mysql.user SET File_priv = 'Y' WHERE user='gs' AND host='localhost';
exit
service mysql restart

Linux
  1. Protocolli di trasferimento file:FTP vs SFTP

  2. Reindirizzamento input/output in Linux/Unix

  3. Output del contenuto del file mentre cambiano?

  4. Nascondere i dati nei filesystem?

  5. Cattura l'output dei nethog nel file di registro

Tipi di dati MySQL

Bash:Scrivi su file

PHP MySQL Seleziona dati

Recupero dati Ext4?

Come aggiungere l'output a un file?

migliorare la velocità di importazione mysql