रिमोट एक्सेस (ग्रांट) को सक्षम करें होम / ट्यूटोरियल / मैसकल / इनेबल रिमोट एक्सेस (ग्रांट) यदि आप दूरस्थ मशीन से अपने mysql सर्वर से कनेक्ट करने का प्रयास करते हैं, और नीचे की तरह त्रुटि में चलते हैं, तो यह लेख आपके लिए है।
ERROR 1130 (HY000): होस्ट '1.2.3.4' को इस MySQL सर्वर से कनेक्ट करने की अनुमति नहीं है
Mysql config बदलें
Mysql config फाइल के संपादन से शुरू करें
vim /etc/mysql/my.cnf
निम्नलिखित पंक्तियों पर टिप्पणी करें।
#bind-address = 127.0.0.1
#skip-networking
अगर आपको स्किप-नेटवर्किंग लाइन नहीं मिलती है, तो उसे जोड़ें और टिप्पणी करें।
Mysql सर्वर को पुनरारंभ करें।
~ /etc/init.d/mysql restart
GRANT विशेषाधिकार बदलें
उपरोक्त परिवर्तन के बाद भी आपको देखकर आश्चर्य हो सकता है कि आपको रिमोट एक्सेस या एक्सेस नहीं मिल रहा है लेकिन सभी डेटाबेस में सक्षम नहीं है।
डिफ़ॉल्ट रूप से, mysql उपयोगकर्ता नाम और पासवर्ड जो आप उपयोग कर रहे हैं, उन्हें mysql-server को स्थानीय रूप से एक्सेस करने की अनुमति है। इसलिए विशेषाधिकार को अद्यतन करने की आवश्यकता है।
सभी मशीनों से एक्सेस करने के लिए नीचे की तरह कमांड चलाएँ। (बदलें USERNAME
और PASSWORD
अपने क्रेडेंशियल्स द्वारा।)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
विशिष्ट IP से पहुँच देने के लिए नीचे की तरह एक कमांड चलाएँ। (बदलें USERNAME
और PASSWORD
अपने क्रेडेंशियल्स द्वारा।)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'1.2.3.4' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
आप अपने आईपी के साथ 1.2.3.4 को बदल सकते हैं। आप कई IP से GRANT पहुंच के लिए कई बार कमांड के ऊपर चल सकते हैं।
आप एक अलग USERNAME
और निर्दिष्ट भी कर सकते हैंPASSWORD
रिमोट एक्सेस के लिए ।
आप अंतिम परिणाम की जाँच कर सकते हैं:
SELECT * from information_schema.user_privileges where grantee like "'USERNAME'%";
अंत में, आपको चलाने की आवश्यकता भी हो सकती है:
mysql> FLUSH PRIVILEGES;
परीक्षण कनेक्शन
टर्मिनल / कमांड-लाइन से:
mysql -h HOST -u USERNAME -pPASSWORD
यदि आपको mysql शेल मिलता है, तो शो डेटाबेस चलाना न भूलें; यह देखने के लिए कि क्या आपके पास दूरस्थ मशीनों से सही विशेषाधिकार हैं।
बोनस-टिप: पहुंच रद्द करें
यदि आप गलती से किसी उपयोगकर्ता को एक्सेस प्रदान करते हैं, तो बेहतर है कि रिवोकिंग का विकल्प आसान हो।
निम्नलिखित सभी मशीनों से USERNAME के सभी विकल्पों को रद्द कर देगा:
mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'USERNAME'@'%';
Following will revoke all options for USERNAME from particular IP:
mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'USERNAME'@'1.2.3.4';
Its better to check information_schema.user_privileges table after running REVOKE command.
यदि आप REVOKE कमांड चलाने के बाद USAGE विशेषाधिकार देखते हैं, तो यह ठीक है। यह उतना ही अच्छा है जितना कोई विशेषाधिकार नहीं। मुझे यकीन नहीं है कि इसे रद्द किया जा सकता है।