Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

त्रुटि कोड:1290। MySQL सर्वर --secure-file-priv विकल्प के साथ चल रहा है, इसलिए यह इस कथन को निष्पादित नहीं कर सकता है

एक त्वरित उत्तर, जिसके लिए आपको किसी भी कॉन्फ़िगरेशन फ़ाइल को संपादित करने की आवश्यकता नहीं है (और अन्य ऑपरेटिंग सिस्टम के साथ-साथ विंडोज़ पर भी काम करता है), बस उस निर्देशिका को ढूंढना है जिसे आपको उपयोग करने के लिए सहेजने की अनुमति है:

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';


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में CONCAT में GROUP_CONCAT का उपयोग कैसे करें

  2. डेटा अपडेट करने के लिए पीडीओ में फॉर्म

  3. जावा + मैसकल UTF8 समस्या

  4. PHP - MySQL डेटबेस से रिकॉर्ड्स को मानों के रूप में उपयोग करके चेक बॉक्स बनाएं

  5. क्या आप Doctrine 2 DQL के साथ सबक्वायरी में शामिल हो सकते हैं?