2011-01-20 20 views
12

Sono bloccato. Fondamentalmente voglio creare un file di dati LOCAL (file CSV) da un database remoto usando il comando OUTFILE.mysql dump a localhost outfile da un database remoto

In pratica, sto tirando i dati ... e voglio crearlo sul mio file server locale anziché creare il file di uscita sul server remoto. Sono limitato sullo spazio in remoto, quindi voglio creare il file localmente. Cosa mi manca su come farlo? Grazie!

Questa è la mia sintassi di lavoro finora sulla riga di comando (che sta creando il file che voglio, ma sul server remoto)

mysql -u test -pfoo --database test -h testdb201.name.host.com --port 3306 -ss -e "SELECT 'a','b','c' UNION SELECT col1, col2, col3 INTO OUTFILE '/tmp/mytest.csv' FIELDS TERMINATED BY ',' FROM tst_p000 limit 10" 
+0

Si sta eseguendo questo comando sul server remoto o sul server locale? – Raghuram

+0

non penso sia fattibile, hai accesso ssh al server del database? – ajreal

+0

esegue questo comando sul server locale. ha funzionato correttamente tutte le mie chiavi SSH. Posso farlo per scaricare il file, ma è sul server remoto. sto vedendo ora che OUTFILE è locale al server del db. – jdamae

risposta

19

Secondo il MySQL Select syntax, Non è possibile utilizzare OUTFILE di uscita a un file al di fuori del server stesso.

È necessario convertire l'output delimitato da tabulazioni della query nel formato CSV come questo (sed command credited here).

mysql -u test -pfoo --database test -h testdb201.name.host.com --port 3306 -ss -e "SELECT 'a','b','c' UNION SELECT col1, col2, col3 " | sed 's/\t/","/g;s/^/"/;s/$/"/;s/\n//g' > myDump.csv 
+0

dolce! bel trucco. Vorrei essere buono con sed. funziona come un fascino. Grazie per l'aiuto! – jdamae

+1

puoi approfondire la sintassi del sed? grazie ancora! – jdamae

+1

Immagine del comando sed diviso in quattro parti, ciascuna separata da un punto e virgola. La prima parte del comando sed sostituisce ogni scheda con "," (comprese le virgolette). La seconda parte sostituisce tutte le righe iniziali con virgolette doppie. La terza parte sostituisce tutte le linee finali con virgolette doppie. L'ultima parte rimuove tutte le nuove righe dalla query. –

Problemi correlati