16.04 को अपग्रेड के दौरान कोई पासवर्ड सेट न होने पर डिफ़ॉल्ट रूप से सॉकेट प्रमाणीकरण के लिए सक्षम होने के कारण समस्या होने की संभावना है। यह महत्वपूर्ण चेतावनी 16.04 जारी नोटों में दर्ज की गई है :
MySQL रूट पासवर्ड खाली होने पर पासवर्ड का व्यवहार बदल गया है। पैकेजिंग अब सॉकेट प्रमाणीकरण सक्षम करता है जब MySQL रूट पासवर्ड खाली होता है। इसका मतलब यह है कि एक गैर-रूट उपयोगकर्ता खाली पासवर्ड के साथ MySQL रूट उपयोगकर्ता के रूप में लॉग इन नहीं कर सकता है।
जो भी कारण के लिए, 16.04 के साथ आया MySQL कार्यक्षेत्र कम से कम मेरे लिए MySQL सर्वर के साथ बॉक्स से बाहर काम नहीं करता है। मैंने कई तरीकों से जुड़ने के लिए "लोकल सॉकेट / पाइप" का उपयोग करने की कोशिश की, लेकिन कोई फायदा नहीं हुआ।
समाधान मूल पासवर्ड प्रमाणीकरण पर वापस लौटने के लिए है। आप MySQL में सॉकेट प्रमाणीकरण का उपयोग करके लॉग इन करके ऐसा कर सकते हैं:
sudo mysql -u root
एक बार लॉग इन करने के बाद:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
जो मूल (पुराने डिफ़ॉल्ट) पासवर्ड प्रमाणीकरण पर वापस आ जाएगा। यदि आपने समस्या को ठीक करने के लिए किसी अन्य विधि का प्रयास किया है, तो आप यह सुनिश्चित करना चाहेंगे कि "प्लगइन" फ़ील्ड mysql.user में "dif_token" पर सेट हो, जिसे MySQL में लॉग इन करने के लिए आपको mysqld_safe का उपयोग करना पड़ सकता है। मैं चीजों के साथ छेड़छाड़ कर रहा हूं, जैसे मैंने किया।
इस समाधान के लिए मिगुएल नीटो के ब्लॉग पोस्ट को श्रेय ।