अगर आपको यह बताने में त्रुटि हो रही है कि root
. के लिए एक्सेस अस्वीकृत है मारियाडीबी में उपयोगकर्ता, यह लेख मदद कर सकता है।
त्रुटि
मैं निम्न आदेश के साथ अपने सिस्टम के समय क्षेत्र की जानकारी को MariaDB में आयात करने का प्रयास कर रहा था:
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
लेकिन इसके परिणामस्वरूप निम्न त्रुटि हुई:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
कारण
इसकी पड़ताल करने के बाद, मुझे एहसास हुआ कि root
उपयोगकर्ता ने अभी तक अपना पासवर्ड सेट नहीं किया था।
जब मैंने निम्नलिखित क्वेरी चलाई:
SELECT user, password
FROM user
WHERE User = 'root';
मुझे निम्न परिणाम मिला:
+-------------+----------+ | User | Password | +-------------+----------+ | root | invalid | +-------------+----------+
मारियाडीबी दस्तावेज निम्नलिखित बताता है:
<ब्लॉकक्वॉट क्लास ="डब्ल्यूपी-ब्लॉक-कोट">
फिर भी, कुछ उपयोगकर्ता सुडो का उपयोग किए बिना मारियाडीबी रूट के रूप में लॉग इन करना चाह सकते हैं। इसलिए पुरानी प्रमाणीकरण विधि - पारंपरिक मारियाडीबी पासवर्ड - अभी भी उपलब्ध है। डिफ़ॉल्ट रूप से इसे अक्षम कर दिया जाता है ("अमान्य" एक मान्य पासवर्ड हैश नहीं है), लेकिन कोई भी सामान्य रूप से पासवर्ड सेट कर सकता है SET PASSWORD
बयान। और फिर भी सूडो के माध्यम से पासवर्ड रहित पहुंच बनाए रखें।
तो यह हमारे उत्तर जैसा दिखता है।
समाधान
उपरोक्त पैराग्राफ के अनुसार, मुझे root
. के लिए पासवर्ड सेट करने की आवश्यकता है उपयोगकर्ता:
SET PASSWORD FOR 'root'@localhost = PASSWORD("myReallyStrongPwd");
चल रहा है कि (एक अलग पासवर्ड के साथ) चाल चल रही है।
तो अगर उपरोक्त त्रुटि हो रही है, तो शायद यह मदद करेगा।