टी एल; डॉ: जड़ उपयोगकर्ता के रूप में के बाद mysql / MariaDB की पहुँच नए संस्करणों के लिए, एक नया स्थापित करने के बाद, आप एक रूट खोल में होने की जरूरत है (यानी sudo mysql -u root
, या mysql -u root
एक खोल द्वारा शुरू अंदर su -
या sudo -i
पहले)
उबंटू पर सिर्फ एक ही अपग्रेड करने के बाद, मेरे पास एक ही मुद्दा था।
क्या अजीब बात थी
sudo /usr/bin/mysql_secure_installation
मेरे पासवर्ड को स्वीकार करेंगे, और मुझे इसे सेट करने की अनुमति देंगे, लेकिन मैं क्लाइंट के root
माध्यम से लॉग इन नहीं कर सकताmysql
मुझे मारीदब से शुरुआत करनी थी
sudo mysqld_safe --skip-grant-tables
रूट के रूप में उपयोग करने के लिए, जबकि अन्य सभी उपयोगकर्ता अभी भी ठीक पहुंच सकते हैं।
mysql.user
तालिका को देखते हुए मैंने रूट के लिए plugin
कॉलम को सेट किया है, unix_socket
जबकि अन्य सभी उपयोगकर्ता इसे 'mysql_native_bword' पर सेट कर रहे हैं। इस पृष्ठ पर एक त्वरित नज़र: https://mariadb.com/kb/en/mariadb/unix_socket-authentication-plugin/ बताते हैं कि यूनिक्स सॉकेट उपयोगकर्ता द्वारा uid
क्लाइंट को चलाने वाली प्रक्रिया के मिलान से लॉगिंग को सक्षम बनाता है। mysql.user
तालिका। दूसरे शब्दों में के रूप में mariadb का उपयोग करने के लिएroot
आपको रूट के रूप में लॉग इन करना होगा।
सुनिश्चित करें कि प्रमाणीकरण के साथ मेरे मरदब डेमॉन को पुनः आरंभ करना आवश्यक है, मैं इसके साथ रूट के रूप में लॉगिन कर सकता हूं
sudo mysql -u root -p
या
sudo su -
mysql -u root -p
ऐसा करने के बाद मैंने सोचा कि बिना सुडो के कैसे पहुंचा जा सकता है, जो कि इन mysql प्रश्नों को चलाने की बात है
GRANT ALL PRIVILEGES on *.* to 'root'@'localhost' IDENTIFIED BY '<password>';
FLUSH PRIVILEGES;
( <password>
अपने वांछित mysql रूट पासवर्ड के साथ प्रतिस्थापित )। यह सक्षम पासवर्ड रूट उपयोगकर्ता के लिए लॉगिन करता है।
वैकल्पिक रूप से mysql क्वेरी चल रही है:
UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin = 'unix_socket';
FLUSH PRIVILEGES;
पासवर्ड बदले बिना पासवर्ड लॉगिन का उपयोग करने के लिए रूट खाते को बदल देगा, लेकिन यह आपको mysql / mariadb इंस्टॉल कर सकता है और उस पर कोई रूट पासवर्ड नहीं है।
इन दोनों में से किसी के बाद भी आपको mysql / mariadb को पुनः आरंभ करने की आवश्यकता है:
sudo service mysql restart
और वोइला मैं अपने निजी खाते के माध्यम से पहुँच था mysql -u root -p
कृपया ध्यान दें कि ऐसा करने से सुरक्षा कम हो रही है, संभवतः MariaDB डेवलपर्स ने एक अच्छे कारण के लिए इस तरह से रूट का उपयोग करने का विकल्प चुना है।
इसके बारे में सोचकर मुझे बहुत खुशी हुई, sudo mysql -u root -p
इसलिए मैं वापस उसी जगह जा रहा हूं, लेकिन मुझे लगा कि मैं अपना समाधान पोस्ट कर दूंगा क्योंकि मुझे कहीं और नहीं मिला।