database - MySQL त्रुटि::'उपयोगकर्ता के लिए प्रवेश निषेध' रूट '@' लोकलहोस्ट '




database-connection (5)

$ ./mysqladmin -u root -p ' redacted '
पास वर्ड दर्ज करें:

mysqladmin: 'स्थानीयहोस्ट' पर सर्वर से कनेक्ट करने में त्रुटि विफल हुई:
'उपयोगकर्ता के लिए प्रवेश निषेध' रूट '@' लोकलहोस्ट '(पासवर्ड का उपयोग करते हुए: हाँ)'

मैं इसे कैसे ठीक करूं?


Answers

मैंने ओएसएक्स में MySQL की प्रारंभिक स्थापना में अपना रूट पासवर्ड सेट करने के लिए ऐसा किया था। एक टर्मिनल खोलें

sudo sh -c 'echo /usr/local/mysql/bin > /etc/paths.d/mysql'

टर्मिनल को बंद करें और एक नया टर्मिनल खोलें। रूट पासवर्ड सेट करने के लिए और लिनक्स में अनुवर्ती कार्रवाई की जाती है।

sudo /usr/local/mysql/support-files/mysql.server stop
sudo mysqld_safe --skip-grant-tables

(sudo mysqld_safe - skip-grant-tables: यह मेरे लिए पहली बार काम नहीं करता था। लेकिन दूसरा प्रयास, सफल हुआ।)

फिर MySQL में लॉग इन करें

mysql -u root

FLUSH PRIVILEGES;

अब पासवर्ड बदलें:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';

MySQL को पुनरारंभ करें:

sudo /usr/local/mysql/support-files/mysql.server stop
sudo /usr/local/mysql/support-files/mysql.server start

सबसे आसान गलती यह है कि यदि आप अपने डेटाबेस में पासवर्ड दर्ज कर रहे हैं और रूट के रूप में आप सही ढंग से पासवर्ड दर्ज कर सकते हैं तो आप उपयोगकर्ता नाम या पासवर्ड गलत दर्ज कर रहे हैं !!

यह आपके उपयोगकर्ता नाम या पासवर्ड गलत नहीं कहता है !! यह वास्तव में "उपयोगकर्ता के लिए प्रवेश निषेध" रूट '@' लोकलहोस्ट (पासवर्ड का उपयोग करते हुए: हां) कहते हैं "

इसलिए अपना पासवर्ड सावधानी से दर्ज करें :)


  1. खोलें और /etc/my.cnf संपादित करें
  2. [mysqld] अंतर्गत skip-grant-tables जोड़ें
  3. Mysql को पुनरारंभ करें
  4. आप नीचे दिए गए कमांड mysql -u root -p का उपयोग करके अब mysql में लॉग इन करने में सक्षम होना चाहिए
  5. रन mysql> flush privileges;
  6. ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword'; द्वारा नया पासवर्ड सेट करें ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
  7. /etc/my.cnf पर वापस जाएं और हटाएं / टिप्पणी -अनुदान-तालिकाएं हटाएं
  8. Mysql को पुनरारंभ करें
  9. अब आप नए पासवर्ड mysql -u root -p साथ लॉगिन कर सकेंगे

मैंने पाया कि सभी समाधान आवश्यक से ज्यादा जटिल थे और कोई भी मेरे लिए काम नहीं करता था यह समाधान है जो मेरी समस्या का समाधान कर रहा है। Mysqld को पुनरारंभ करने या इसे विशेष विशेषाधिकार के साथ शुरू करने की कोई ज़रूरत नहीं है।

sudo mysql

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'

एक एकल क्वेरी के साथ हम auth_plugin को mysql_native_password में बदल रहे हैं और रूट पासवर्ड को रूट ( रूट में सेट करने के लिए) (इसे क्वेरी में बदलने के लिए स्वतंत्र महसूस करें)

अब आप रूट के साथ लॉगिन करने में सक्षम होना चाहिए। अधिक जानकारी mysql दस्तावेज़ीकरण में पाई जा सकती है


टर्मिनल में इन लाइनों को चलाने से मेरे लिए चाल और कई अन्य लोगों को एक ही समस्या थी। ब्रूव सफलतापूर्वक mysql इंस्टॉल करने के बाद ये निर्देश टर्मिनल में सूचीबद्ध हैं।

mkdir -p ~/Library/LaunchAgents

cp /usr/local/Cellar/mysql/5.5.25a/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/

launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

/usr/local/Cellar/mysql/5.5.25a/bin/mysqladmin -u root password 'YOURPASSWORD'

जहां YOURPASSWORD पासवर्ड रूट के लिए पासवर्ड है।







mysql sql database database-connection