एक त्वरित उत्तर, जिसके लिए आपको किसी भी कॉन्फ़िगरेशन फ़ाइल को संपादित करने की आवश्यकता नहीं है (और अन्य ऑपरेटिंग सिस्टम के साथ-साथ विंडोज़ पर भी काम करता है), बस उस निर्देशिका को ढूंढना है जिसे आपको उपयोग करने के लिए सहेजने की अनुमति है:
mysql> SHOW VARIABLES LIKE "secure_file_priv";
+------------------+-----------------------+
| Variable_name | Value |
+------------------+-----------------------+
| secure_file_priv | /var/lib/mysql-files/ |
+------------------+-----------------------+
1 row in set (0.06 sec)
और फिर सुनिश्चित करें कि आप उस निर्देशिका का उपयोग अपने SELECT
. में करते हैं स्टेटमेंट का INTO OUTFILE
खंड:
SELECT *
FROM xxxx
WHERE XXX
INTO OUTFILE '/var/lib/mysql-files/report.csv'
FIELDS TERMINATED BY '#'
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
मूल उत्तर
MySQL 5.6.25 से 5.6.26 में अपग्रेड करने के बाद से मुझे यही समस्या है।
मेरे मामले में (विंडोज़ पर), MySQL56 विंडोज सेवा को देखकर मुझे पता चलता है कि सेवा शुरू होने पर उपयोग की जाने वाली विकल्प/सेटिंग्स फ़ाइल C:\ProgramData\MySQL\MySQL Server 5.6\my.ini
है। कोड>
लिनक्स पर दो सबसे आम स्थान हैं /etc/my.cnf
या /etc/mysql/my.cnf
।
इस फ़ाइल को खोलने पर मैं देख सकता हूँ कि secure-file-priv
[mysqld]
. के तहत विकल्प जोड़ा गया है डिफ़ॉल्ट मान के साथ MySQL सर्वर के इस नए संस्करण में समूह:
secure-file-priv="C:/ProgramData/MySQL/MySQL Server 5.6/Uploads"
आप इस पर टिप्पणी कर सकते हैं (यदि आप एक गैर-उत्पादन वातावरण में हैं), या सेटिंग बदलने के साथ प्रयोग करें (हाल ही में मुझे secure-file-priv = ""
डिफ़ॉल्ट को अक्षम करने के लिए)। परिवर्तन करने के बाद सेवा को पुनः आरंभ करना न भूलें।
वैकल्पिक रूप से, आप अपने आउटपुट को अनुमत फ़ोल्डर में सहेजने का प्रयास कर सकते हैं (स्थान आपकी स्थापना के आधार पर भिन्न हो सकता है):
SELECT *
FROM xxxx
WHERE XXX
INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 5.6/Uploads/report.csv'
FIELDS TERMINATED BY '#'
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FIELDS TERMINATED BY ','
का उपयोग करके अल्पविराम से अलग मानों का होना अधिक सामान्य है . उदाहरण के लिए नीचे देखें (लिनक्स पथ भी दिखा रहा है):
SELECT *
FROM table
INTO OUTFILE '/var/lib/mysql-files/report.csv'
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
ESCAPED BY ''
LINES TERMINATED BY '\n';