2010-05-10 13 views
5

Mam skrypt powłoki na serwerze a. Skrypt wypisuje plik csv do lokalnego katalogu. Problem polega na tym, że serwer bazy danych znajduje się na serwerze b. Jak korzystać z wybierz * do pliku outfile w konfiguracji podobnej do tej?MySQL WYBRAĆ W OUTFILE na inny serwer?

uzyskać

Can't create/write to file '/home/username/test.csv/' (Errcode: 2) 

Solved danych plik_we obciążenia za pomocą słowa kluczowego 'lokalne'. Czy jest coś takiego na outfile?

Odpowiedz

11

select into outfile może tylko utworzyć plik na serwerze, a nie na kliencie.

Oto co instrukcja zaleca do sytuacji:

Jeśli chcesz utworzyć plik wynikowy na jakiegoś hosta klienta innego niż hosta serwera, nie można użyć SELECT ... INTO OUTFILE. W takim przypadku użytkownik powinien zamiast tego użyć polecenia, takiego jak mysql -e "SELECT ..."> nazwa_pliku do wygenerować plik na hoście klienta.

http://dev.mysql.com/doc/refman/5.1/en/select.html

+0

jakaś szansa, będą one wdrożenie LOCAL słowo kluczowe w outfile jak robią z pliku wejściowego w następnej wersji? Ten prosty problem powoduje dużo dodatkowej pracy. Dziękujemy! – ThinkCode

+0

Wątpię w to. Czy próbowałeś zalecanego podejścia, używając 'mysql -e' i przekierowując wyjście do lokalnego pliku? –

+1

Od czasu kiedy został on zrzucony jako tekst i nie można go zrzucić jako pliku CSV, musiałem całkowicie zignorować to podejście. MySQL bardzo utrudnia wykonanie tak prostego zadania :(Raz jeszcze dziękuję! – ThinkCode

0

Użyj poniższego polecenia:

mysql -uusername -ppassword -h DBIP DBNAME -e \ 
"SELECT * FROM tablename" > /destinationpath/outputfilename.csv 
Powiązane problemy