मुझे नहीं लगता कि यह एक बंदरगाह मुद्दा है, अनुरोध अपने गंतव्य तक पहुंच रहा है। [email protected]
कमांड लाइन के माध्यम से लॉग इन करते समय काम करेगा (mysql -u root -p
) लेकिन आप इसे अपने कोड से कनेक्ट करने के लिए उपयोग नहीं करना चाहते हैं। ध्यान रखें कि अपना कनेक्शन स्थापित करते समय, आपको host=localhost
. का उपयोग करना होगा या host=127.0.0.1
स्पष्ट रूप से। यदि आप आईपी पते (उसी सर्वर पर भी) का उपयोग करते हैं, तो आप पहुंच से वंचित हो जाएंगे।
[[email protected] ~]# mysql --host=127.0.0.1 --protocol=TCP -u root -p
Enter password:
mysql>
[[email protected] ~]# mysql --host=192.168.1.10 --protocol=TCP -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'hostname' (using password: YES)
यहां वे चरण दिए गए हैं जिनका मैं सुझाव दूंगा:
- एक समर्पित उपयोगकर्ता बनाएं जिसका उपयोग आप अपनी स्क्रिप्ट में कनेक्ट करने के लिए कर सकते हैं।
-
यदि स्क्रिप्ट का स्रोत MySQL के समान सर्वर है।
CREATE USER '<user>'@'localhost' IDENTIFIED BY 'password'; GRANT ALL ON <database>.* TO '<user>'@'localhost';
-
यदि कनेक्शन हमेशा एक ही स्थान से स्थापित होता है लेकिन MySQL से भिन्न स्थान पर होता है, तो कमांड लाइन पर निम्नलिखित चलाएँ।
CREATE USER '<user>'@'<IP_address>' IDENTIFIED BY 'password'; GRANT ALL ON <database>.* TO '<user>'@'<IP_address>';
-
यदि कनेक्शन का स्रोत भिन्न होता है, तो निम्न आदेश चलाएँ।
CREATE USER '<user>'@'<IP_address>' IDENTIFIED BY 'password'; GRANT ALL ON <database>.* TO '<user>'@'%';
यहां दस्तावेज़ीकरण का लिंक दिया गया है यदि आपके कोई प्रश्न हैं।