localhost
%
. से मेल नहीं खाता MySQL में। ऐसा लगता है कि ऐसा होना चाहिए, लेकिन वास्तव में ऐसा नहीं है। आपको [email protected]
, दोनों USAGE
. के लिए विशेषाधिकार, और प्रत्येक डेटाबेस पर विशेषाधिकारों के लिए।
या आप [email protected]
जो करता है मैच %
. लोकलहोस्ट के लिए आईपी एड्रेस का उपयोग करने से ऐसा लगता है कि इसे लोकलहोस्ट के समान ही काम करना चाहिए, लेकिन ऐसा नहीं है। mysql.user
. में आपके पास दो लाइन होनी चाहिए तालिका (और mysql.db
. में भी तालिका आपके मामले में) दोनों को सक्षम करने के लिए।
लोकलहोस्ट और 127.0.0.1 के बीच अंतर प्रदर्शित करने के लिए:
mysql -h localhost
के रूप में कनेक्ट हो रहा है UNIX सॉकेट इंटरफ़ेस का उपयोग करता है, और TCP/IP को बायपास करता है। यह प्रदर्शन के लिए थोड़ा बेहतर हो सकता है, लेकिन ऊपर वर्णित अनुदान मिलान पर इसका प्रभाव पड़ता है।
आप mysql -h 127.0.0.1
. के रूप में कनेक्ट करके स्थानीय TCP/IP कनेक्शन को बाध्य कर सकते हैं . फिर यह आपके द्वारा [email protected]%
।
तो सॉकेट इंटरफेस और टीसीपी/आईपी इंटरफेस दोनों के लिए समान उपयोगकर्ता, पासवर्ड और विशेषाधिकार प्राप्त करने के लिए, आपको सभी चलाने की आवश्यकता होगी निम्नलिखित कथनों में से:
GRANT USAGE ON *.* TO 'myuser'@'%' IDENTIFIED BY PASSWORD '*7733323232...'
GRANT USAGE ON *.* TO 'myuser'@'localhost' IDENTIFIED BY PASSWORD '*7733323232...'
GRANT ALL PRIVILEGES ON `db1`.* TO 'myuser'@'%'
GRANT ALL PRIVILEGES ON `db1`.* TO 'myuser'@'localhost'
GRANT ALL PRIVILEGES ON `db2`.* TO 'myuser'@'%'
GRANT ALL PRIVILEGES ON `db2`.* TO 'myuser'@'localhost'