मैं automysqlbackupअपने mysql डेटाबेस को डंप करने के लिए स्क्रिप्ट का उपयोग कर रहा हूं , लेकिन मैं चाहता हूं कि ऐसा करने के लिए केवल-पढ़ने वाला उपयोगकर्ता हो ताकि मैं अपने रूट डेटाबेस पासवर्ड को एक सादा फ़ाइल में संग्रहीत नहीं कर रहा हूं।
मैंने ऐसा उपयोगकर्ता बनाया है:
grant select, lock tables on *.* to 'username'@'localhost' identified by 'password';
जब मैं दौड़ता हूं mysqldump(या तो automysqlbackupसीधे या सीधे) मुझे निम्नलिखित चेतावनी मिलती है:
mysqldump: Got error: 1044: Access denied for user 'username'@'localhost' to database 'information_schema' when using LOCK TABLES
क्या मैं गलत कर रहा हूँ? क्या मुझे अपने रीडायनली उपयोगकर्ता के लिए अतिरिक्त अनुदान की आवश्यकता है? या केवल मेज पर rootताला लगा सकता है information_schema? क्या चल रहा है?
संपादित करें:
GAH और अब यह काम करता है। मैंने पहले FLUSH PRIVILEGES नहीं चलाया होगा।
एक तरफ के रूप में, यह कितनी बार स्वचालित रूप से होता है?
संपादित करें:
नहीं, यह काम नहीं करता है। mysqldump -u username -p --all-databases > dump.sqlमैन्युअल रूप से चलाने से कोई त्रुटि उत्पन्न नहीं होती है, लेकिन information_schema को डंप नहीं करता है। automysqlbackupएक त्रुटि उठाता है।
mysqldump: mysqldump INFORMATION_SCHEMA डेटाबेस को डंप नहीं करता है। यदि आप उस डेटाबेस को स्पष्ट रूप से कमांड लाइन पर नाम देते हैं, तो mysqldump चुपचाप इसे अनदेखा कर देता है जैसे या तो मैन पेज पुराना हो गया है (और यह एक चेतावनी बढ़ाता है), याautomysqlbackupइसके लिए डंप पर कुछ अतिरिक्त जांच कर रहा हैinformation_schema। निश्चित नहीं है कि यह कौन है, लेकिन यह उपयोगकर्ता अनुदान से संबंधित नहीं है।