यह सामान्य है, अगर "mysql -u root -p के माध्यम से DB को एक्सेस करना कह कर ठीक काम करता है" आपका मतलब है कि आप इसे सिस्टम रूट होने के दौरान चला रहे हैं (या sudo . के तहत) ) आप इसे एक सामान्य उपयोगकर्ता के रूप में करने में सक्षम नहीं होना चाहिए।
डिफ़ॉल्ट रूप से उबंटू द्वारा उत्पन्न पैकेज में unix_socket होता है। स्थानीय रूट के लिए प्रमाणीकरण। जाँच करने के लिए, दौड़ें
SELECT user, host, plugin FROM mysql.user;
आपको देखना चाहिए unix_socket plugin . में example@sqldat.com ।
यदि आप इसके बजाय पासवर्ड प्रमाणीकरण का उपयोग करना चाहते हैं, तो चलाएं
UPDATE mysql.user SET plugin = '' WHERE plugin = 'unix_socket';
FLUSH PRIVILEGES;