पर मौजूद नहीं है, मैं CSV फ़ाइल में तालिका को डंप करने के लिए एक बहुत ही सरल शैल स्क्रिप्ट लिख रहा हूं।MySQL OUTFILE क्वेरी शिकायत करती है कि "फ़ाइल पहले से मौजूद है" लेकिन फ़ाइल सभी
day=`/bin/date +'%Y-%m-%d'`
file="/tmp/table-$day.csv"
rm $file
query="SELECT * FROM table INTO OUTFILE '$file' FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\\n'"
echo "$query" | mysql <connection_parameters>
मैं rm $file
में डाल सुनिश्चित करें कि फ़ाइल क्वेरी के निष्पादन से पहले अस्तित्व में नहीं है बनाने के लिए: यहाँ यह का हिस्सा है।
rm: cannot remove `/tmp/table-2013-02-08.csv': No such file or directory
ERROR 1086 (HY000) at line 1: File '/tmp/table-2013-02-08.csv' already exists
मैं मशीन में कहीं भी outfile नहीं मिल सकता है:
हालांकि, जब मैं स्क्रिप्ट को निष्पादित, मैं परस्पर विरोधी संदेशों मिलता है।
तो क्या गलत है ..?
धन्यवाद।
क्या/tmp मौजूद है? क्या आपके पास लेखन पहुंच है? मुझे आश्चर्य है कि MySQL शेल स्क्रिप्ट को निष्पादित कर रहे हैं, इसके सापेक्ष इसके बजाय/mysql/tmp/लिखने की कोशिश कर रहा है। –
धन्यवाद याकूब।/tmp मौजूद है और लिखने योग्य है। क्वेरी को मैन्युअल रूप से निष्पादित करना सफलतापूर्वक चलाता है। –
मैंने देखा कि क्वेरी को मैन्युअल रूप से निष्पादित करना पहली बार सफल होता है, लेकिन दूसरी बार नहीं ... –