2010-12-27 27 views
5
mysql> LOAD DATA INFILE '/home/myuser/myproject/power/ids-ads.txt' INTO TABLE ids_ads FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'; 

ERROR 29 (HY000): File '/home/myuser/myproject/power/ids-ads.txt' not found (Errcode: 13) 

फ़ाइल वहां है। मैंने पथ को mysql कंसोल में चिपकाया। अनुमतियां सही हैं।यह MYSQL कथन मुझे एक त्रुटि क्यों दे रहा है?

वास्तव में, मैंने इसे रूट उपयोगकर्ता और रूट mysql पर भी परीक्षण किया।

-rw-r--r-- 1 myuser myuser 15893 2010-12-26 20:56 ids-ads.txt 
+0

क्या एक ही मशीन पर फाइलें हैं? कोई माउंट या ऐसा कुछ नहीं? – Steve

+0

बस एक मशीन। बहुत सरल सेटअप – TIMEX

+0

और परियोजना के नाम में कोई जगह नहीं है? – Steve

उत्तर

6

ध्यान दें कि जब आप लोड डेटा इनफाइल करते हैं, तो MySQL उस फ़ाइल को सर्वर पर ढूंढ रहा है - आपकी क्लाइंट मशीन पर नहीं।

यदि आप क्लाइंट मशीन (और सर्वर मशीन नहीं) पर फ़ाइल लोड करने के लिए लोड डेटा INFILE का उपयोग करना चाहते हैं, तो आपको लोड डेटा स्थानीय INFILE का उपयोग करना होगा।

http://dev.mysql.com/doc/refman/5.1/en/load-data.html

0

हममम ... शायद एक बेवकूफ सवाल है, लेकिन वहाँ स्ट्रिंग में '/home.../ids-ads.txt' किसी भी अदृश्य चरित्र?

+0

मुझे ऐसा नहीं लगता है। यह बहुत नियमित पाठ लगता है। – TIMEX

2

MySQL मैनुअल से:

For security reasons, when reading text files located on the server, the files 
must either reside in the database directory or be readable by all. Also, to use 
LOAD DATA INFILE on server files, you must have the FILE privilege. For non-LOCAL 
load operations, if the secure_file_priv system variable is set to a nonempty 
directory name, the file to be loaded must be located in that directory. 

http://dev.mysql.com/doc/refman/5.1/en/load-data.html

0

के रूप में मार्क बी ने कहा, फ़ाइल डेटाबेस निर्देशिका या सभी द्वारा पठनीय में की जरूरत है। फ़ाइल को केवल पढ़ने योग्य होने की आवश्यकता नहीं है, लेकिन MySQL को उस निर्देशिका में पढ़ने की अनुमति की आवश्यकता है जहां टेक्स्ट फ़ाइल संग्रहीत की जाती है।/Home/myuser/myproject/power/और इसके कंटेनर/home/myuser पर अनुमतियां क्या हैं? यदि, उस श्रृंखला में किसी भी बिंदु पर, अनुमति अस्वीकार कर दी जाएगी, तो MySQL फ़ाइल को पढ़ने में सक्षम नहीं होगा।

0

यदि आप phpmyadmin का उपयोग कर रहे हैं तो Use LOCAL keyword को सक्षम करना सुनिश्चित करें। यह मेरे लिए काम किया।

संबंधित मुद्दे