मैं MySQL तालिका से फ़ाइल में डेटा आउटपुट करने की कोशिश कर रहा हूं, लेकिन अनुमति त्रुटियां प्राप्त कर रहा हूं:
$ pwd
/home/dotancohen
$ mkdir in
$ chmod 777 in/
$ mysql -ugs -p
mysql> USE someDatabase;
mysql> SELECT * FROM data INTO OUTFILE '/home/dotancohen/in/data.csv';
ERROR 1045 (28000): Access denied for user 'gs'@'localhost' (using password: YES)
mysql>
यदि प्रश्न में निर्देशिका को 777 पर नामांकित किया गया है, तो MySQL उपयोगकर्ता फ़ाइल क्यों नहीं लिख सकता है? दिलचस्प बात यह है कि, मैं / tmp / या तो लिख नहीं सकता।
संपादित करें: ऐसा लगता है कि DB उपयोगकर्ता के पास उचित MySQL अनुमतियां हैं:
mysql> show grants;
+----------------------------------------------------------------------------------+
| Grants for gs@localhost |
+----------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'gs'@'localhost' IDENTIFIED BY PASSWORD 'somePassword' |
| GRANT ALL PRIVILEGES ON `gs\_%`.* TO 'gs'@'localhost' |
+----------------------------------------------------------------------------------+
2 rows in set (0.01 sec)
SELECT
अनुमतियां हैं। मैं अक्सर इस उपयोगकर्ता के रूप में डेटाबेस ब्राउज़ करता हूं।
in
यदि MySQL एक्सेस नहीं कर सकता है तो अधिकारों को प्रदान करना व्यर्थ हैdotanchoen
। दूसरे शब्दों में, बैंक वॉल्ट में सेफ्टी डिपो बॉक्स को व्यापक रूप से खुला छोड़ा जा सकता है, लेकिन यदि बैंक वॉल्ट का दरवाजा बंद है, तो आप बॉक्स में नहीं जा रहे हैं। आपकेgs
उपयोगकर्ता के पासFILE
वास्तव में उस क्वेरी को निष्पादित करने के लिए mysql विशेषाधिकार होना चाहिए ।