MySQL यूजर होस्ट '%' vs 'localhost' और पासवर्ड बदलना
MySQL में यूजर खाता user@host जोड़ी से पहचाना जाता है:
localhost— केवल स्थानीय मशीन से कनेक्शन (यूनिक्स सॉकेट या 127.0.0.1)।%— **किसी भी होस्ट** से कनेक्शन की अनुमति (रिमोट एक्सेस)।
वर्तमान यूजर/होस्ट देखना
SELECT user, host FROM mysql.user;
पासवर्ड बदलना (MySQL 5.7.6+ / 8.0+)
ALTER USER 'username'@'host' IDENTIFIED BY 'new_password';
उदाहरण: 'John'@'localhost' का पासवर्ड बदलना
ALTER USER 'John'@'localhost' IDENTIFIED BY 'John123456'; FLUSH PRIVILEGES;
पुराना सिंटैक्स (MySQL 5.7.6 से पहले, अब डिप्रिकेटेड)
SET PASSWORD FOR 'John'@'localhost' = 'John123456';
महत्वपूर्ण बिंदु
- होस्ट नाम **सटीक मिलान** होना चाहिए (केस-सेंसिटिव नहीं, लेकिन '%' वाइल्डकार्ड है)।
FLUSH PRIVILEGESआमतौर परALTER USERके बाद आवश्यक नहीं, लेकिन कोई नुकसान नहीं।- पासवर्ड नीति (
validate_passwordप्लगइन) लंबाई/जटिलता लागू कर सकती है। - रिमोट एक्सेस के लिए
%होस्ट वाले यूजर बनाएं, लेकिन मजबूत पासवर्ड और फायरवॉल प्रतिबंध सुनिश्चित करें।
यूजर बनाना (रिमोट एक्सेस सहित)
CREATE USER 'appuser'@'%' IDENTIFIED BY 'StrongPass123!'; GRANT SELECT, INSERT, UPDATE ON mydb.* TO 'appuser'@'%';