MySQL त्रुटि:: 'उपयोगकर्ता' रूट '@' लोकलहोस्ट 'के लिए अस्वीकृत


263

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

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

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



1
@clearlight एक ही सवाल नहीं है, यह पोस्ट mysqladmin जीतने के लिए एक समस्या है, सुपर सॉक्स में mysql है, दूसरी पोस्ट सॉकेट से एक साधारण कनेक्शन के साथ एक समस्या है।
ई-इन्फोरमिया

~/.my.cnfफ़ाइल मौजूद होने पर निकालने का प्रयास करें ।
ई-इन्फोरमिया

11
मुझे पता है कि यह पुराना है, लेकिन भविष्य के आगंतुकों के लिए यह कहना चाहता हूं। अपने mysql पासवर्ड, विशेष रूप से रूट के लिए, कमांड में ही दर्ज न करें, या यह आपके शेल इतिहास में संग्रहीत किया जाएगा। बस -pअपने आप ही विकल्प छोड़ दें और mysql पासवर्ड के लिए संकेत देगा।
स्कूटी सी।

जवाबों:


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

6
हैलो, मैं एक ही समस्या थी। मैंने ऊपर किया था, और यह समस्या को हल करता है, लेकिन हर बार जब मैं CentOS को रिबूट करता हूं, मुझे फिर से सभी चरणों को करने की आवश्यकता होती है (मुझे संदेश मिला: उपयोगकर्ता 'रूट' @ 'लोकलहोस्ट' के लिए इनकार कर दिया गया है (पासवर्ड का उपयोग करके: NO) - जब कमांड mysql (या कोई sql कमांड) चलाते हैं और मैं प्रत्येक रिबूट के ऊपर और फिर से सभी को ऊपर से करता हूं।
Eitan

19
बहुत बुरा है कि यह MariaDB के साथ काम नहीं करता है:You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'USER 'root'@'localhost' IDENTIFIED BY 'NewPassword'' at line 1
फिलिप लुडविग

11
मुझे यह काम करने के लिए मिला @PhilippLudwig set PASSWORD FOR 'root'@'localhost' = PASSWORD('root');मैंने इसे चरण 5 के बाद किया। यहां बताया गया है कि मेरा कमांड प्रॉम्प्ट आउटपुट कैसे दिखता है:MariaDB [(none)]> MariaDB [(none)]> set PASSWORD FOR 'root'@'localhost' = PASSWORD('root'); Query OK, 0 rows affected (0.00 sec)
therobyouknow

3
चरण 3 के लिए sudo systemctl restart mariadb
मारियाबडी को

7
कुछ को /etc/mysql/my.cnf में फाइल मिल सकती है
DSinghvi

589

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

sudo mysql

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

एक एकल क्वेरी के साथ हम बदल रहे हैं _____________ब्यवहार को बदलने के लिए और पासवर्ड को रूट करने के लिए रूट_प्लगिन को_करने के लिए बदल दें (बेझिझक इसे क्वेरी में बदलें)

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

( Ctrl + D के साथ mysql कंसोल से बाहर निकलें या बाहर निकलें टाइप करके )


41
मैं ऐसा करने में असमर्थ हूं ... "आपके SQL सिंटैक्स में एक त्रुटि है, उस मैनुअल की जांच करें जो आपके सिंटैक्स के सर्वर संस्करण से मेल खाता है।
TCB13

2
इस उत्तर ने काम किया, मैंने गलती से जोड़ा कि उपयोगी उत्तर वोट नहीं है, मुझे क्षमा करें!
तहर

25
उबंटू 18.04 पर बहुत अच्छी तरह से काम किया
Almino मेलो

2
@ TCB13 और किसी और को इस मुद्दे का सामना करना पड़ रहा है। "मैं ऐसा करने में असमर्थ हूँ ..." आपके SQL सिंटैक्स में कोई त्रुटि है; पास के उपयोग के लिए सही सिंटैक्स के लिए अपने MariaDB सर्वर संस्करण से मेल खाने वाले मैनुअल की जाँच करें ... "परिवर्तन कमांड को निष्पादित करने से पहले FLUSH PRIVILEGES का उपयोग करें
कोडर

3
आप मेरा दिन बचाते हैं :)
xger86x

50

मैंने इस मुद्दे को ठीक करने के लिए कई कदम उठाए। इस मुद्दे के संभावित समाधान के लिए बहुत सारे स्रोत हैं जो बकवास से समझ को फ़िल्टर करना मुश्किल है। मुझे अंत में यहाँ एक अच्छा समाधान मिला :

चरण 1: डेटाबेस संस्करण की पहचान करें

$ mysql --version

आपको MySQL के साथ कुछ आउटपुट दिखाई देंगे:

$ mysql  Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using  EditLine wrapper

या इस तरह के उत्पादन के लिए MariaDB:

mysql  Ver 15.1 Distrib 5.5.52-MariaDB, for Linux (x86_64) using readline 5.1

ध्यान दें कि आप किस डेटाबेस और किस संस्करण को चला रहे हैं, जैसा कि आप उन्हें बाद में उपयोग करेंगे। अगला, आपको डेटाबेस को रोकने की आवश्यकता है ताकि आप इसे मैन्युअल रूप से एक्सेस कर सकें।

चरण 2: डेटाबेस सर्वर को रोकना

रूट पासवर्ड बदलने के लिए, आपको पहले से डेटाबेस सर्वर को बंद करना होगा।

आप MySQL के लिए ऐसा कर सकते हैं:

$ sudo systemctl stop mysql

और MariaDB के लिए:

$ sudo systemctl stop mariadb

चरण 3: डेटाबेस सर्वर को बिना अनुमति जाँच के पुनः आरंभ करना

यदि आप उपयोगकर्ता विशेषाधिकारों के बारे में जानकारी लोड किए बिना MySQL और MariaDB चलाते हैं, तो यह आपको पासवर्ड प्रदान किए बिना डेटाबेस कमांड लाइन को रूट विशेषाधिकार के साथ एक्सेस करने की अनुमति देगा। इससे आप बिना जाने-समझे डेटाबेस तक पहुंच प्राप्त कर सकेंगे।

ऐसा करने के लिए, आपको डेटाबेस को अनुदान तालिकाओं को लोड करने से रोकना होगा, जो उपयोगकर्ता विशेषाधिकार जानकारी संग्रहीत करते हैं। क्योंकि यह एक सुरक्षा जोखिम का एक सा है, इसलिए आपको अन्य क्लाइंट्स को कनेक्ट होने से रोकने के लिए नेटवर्किंग को भी छोड़ देना चाहिए।

अनुदान तालिकाएँ लोड किए बिना या नेटवर्किंग सक्षम किए बिना डेटाबेस शुरू करें:

$ sudo mysqld_safe --skip-grant-tables --skip-networking &

इस आदेश के अंत में एम्परसैंड पृष्ठभूमि में इस प्रक्रिया को चलाएगा ताकि आप अपने टर्मिनल का उपयोग करना जारी रख सकें।

अब आप रूट उपयोगकर्ता के रूप में डेटाबेस से जुड़ सकते हैं, जिसे पासवर्ड नहीं मांगना चाहिए।

$ mysql -u root

आपको तुरंत इसके बजाय एक डेटाबेस शेल प्रॉम्प्ट दिखाई देगा।

MySQL शीघ्र

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

मारियाडीबी प्रॉम्प्ट

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

अब आपके पास रूट एक्सेस है, आप रूट पासवर्ड बदल सकते हैं।

चरण 4: रूट पासवर्ड बदलना

mysql> FLUSH PRIVILEGES;

अब हम वास्तव में रूट पासवर्ड बदल सकते हैं।

के लिए MySQL 5.7.6 और नए के साथ-साथ MariaDB 10.1.20 और नए , निम्न आदेश का उपयोग:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

के लिए MySQL 5.7.5 और पुराने के साथ-साथ MariaDB 10.1.20 और पुराने , उपयोग करें:

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');

new_passwordअपनी पसंद के नए पासवर्ड से प्रतिस्थापित करना सुनिश्चित करें ।

नोट: यदि ALTER USERकमांड काम नहीं करता है, तो यह आमतौर पर एक बड़ी समस्या का संकेत होता है। हालाँकि, आप UPDATE ... SETइसके बजाय रूट पासवर्ड रीसेट करने का प्रयास कर सकते हैं।

[महत्वपूर्ण] यह विशिष्ट लाइन है जिसने मेरे विशेष मुद्दे को तय किया है:

mysql> UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHERE User = 'root' AND Host = 'localhost';

इसके बाद अनुदान तालिका को पुनः लोड करना याद रखें।

किसी भी स्थिति में, आपको यह पुष्टि करनी चाहिए कि कमांड को सफलतापूर्वक निष्पादित किया गया है।

Query OK, 0 rows affected (0.00 sec)

पासवर्ड बदल दिया गया है, इसलिए अब आप डेटाबेस सर्वर के मैनुअल इंस्टेंस को रोक सकते हैं और इसे फिर से शुरू कर सकते हैं जैसा कि पहले था।

चरण 5: डेटाबेस सर्वर को सामान्य रूप से पुनरारंभ करें

डेटाबेस को पुनः आरंभ करने के लिए ट्यूटोरियल कुछ और चरणों में जाता है, लेकिन मेरे द्वारा उपयोग किया जाने वाला एकमात्र टुकड़ा था:

MySQL के लिए, उपयोग करें: $ sudo systemctl start mysql

MariaDB के लिए, उपयोग करें:

$ sudo systemctl start mariadb

अब आप पुष्टि कर सकते हैं कि नया पासवर्ड सही ढंग से चलाकर लागू किया गया है:

$ mysql -u root -p

कमांड को अब नए नियत पासवर्ड के लिए संकेत देना चाहिए। इसे दर्ज करें, और आपको अपेक्षा के अनुसार डेटाबेस प्रॉम्प्ट तक पहुंच प्राप्त करनी चाहिए।

निष्कर्ष

अब आपके पास MySQL या MariaDB सर्वर के लिए प्रशासनिक पहुँच बहाल है। सुनिश्चित करें कि आपके द्वारा चुना गया नया रूट पासवर्ड मजबूत और सुरक्षित है और इसे सुरक्षित स्थान पर रखें।


1
ALTER USER कथन मारियाबीडी 10.2.0 में प्रस्तुत किया गया था।
बेनोइट देसोस्सिएर्स

2
वाह ! यह रेखा mysql> UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHERE User = 'root' AND Host = 'localhost';मेरे लिए जीवन रक्षक है!
lucyjosef

35

उपर्युक्त उत्तरों में से किसी ने भी मुझे इस समस्या से निपटने में मदद नहीं की, इसलिए यहां मुझे इसका समाधान मिला

प्रासंगिक हिस्सा:

MySQL 5.7 (और बाद के संस्करणों) को चलाने वाले उबंटू सिस्टम में, रूट MySQL उपयोगकर्ता एक पासवर्ड के बजाय डिफ़ॉल्ट रूप से Cort_socket प्लगइन का उपयोग करके प्रमाणित करने के लिए सेट है। यह कई मामलों में कुछ अधिक सुरक्षा और प्रयोज्य के लिए अनुमति देता है, लेकिन यह उन चीजों को भी जटिल कर सकता है जब आपको उपयोगकर्ता तक पहुंचने के लिए एक बाहरी कार्यक्रम (जैसे, phpMyAdmin) की अनुमति देने की आवश्यकता होती है।

MySQL को रूट के रूप में कनेक्ट करने के लिए पासवर्ड का उपयोग करने के लिए, आपको इसके प्रमाणीकरण विधि को SSL_socket से mysql_native_password पर स्विच करना होगा। ऐसा करने के लिए, अपने टर्मिनल से MySQL प्रॉम्प्ट खोलें:

sudo mysql

अगला, जाँच करें कि आपके प्रत्येक MySQL उपयोगकर्ता खाते में कौन सी प्रमाणीकरण विधि निम्नलिखित कमांड के साथ उपयोग होती है:

SELECT user,authentication_string,plugin,host FROM mysql.user;

उत्पादन

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

इस उदाहरण में, आप देख सकते हैं कि रूट उपयोगकर्ता वास्तव में Cort_socket प्लगइन का उपयोग करके प्रमाणित करता है। किसी पासवर्ड के साथ प्रमाणित करने के लिए रूट खाते को कॉन्फ़िगर करने के लिए, निम्न उपयोग कमांड चलाएँ। पासवर्ड को अपने चयन के एक मजबूत पासवर्ड में बदलना सुनिश्चित करें, और ध्यान दें कि यह कमांड आपके द्वारा चरण 2 में निर्धारित रूट पासवर्ड को बदल देगा:

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

फिर, FLUSH PRIVILEGES चलाएं, जो सर्वर को अनुदान सारणी पुनः लोड करने और आपके नए परिवर्तनों को प्रभावी बनाने के लिए कहता है:

FLUSH PRIVILEGES;

अपने उपयोगकर्ताओं में से प्रत्येक द्वारा प्रमाणित प्रमाणीकरण विधियों की जाँच करें ताकि यह पुष्टि हो सके कि अब root_socket प्लगइन का उपयोग करके प्रमाणिकता नहीं है:

SELECT user,authentication_string,plugin,host FROM mysql.user;

उत्पादन

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

आप इस उदाहरण आउटपुट में देख सकते हैं कि रूट MySQL उपयोगकर्ता अब एक पासवर्ड का उपयोग करके प्रमाणित करता है। एक बार जब आप अपने सर्वर पर इसकी पुष्टि कर लेते हैं, तो आप MySQL शेल से बाहर निकल सकते हैं:

exit


27

उबंटू / डेबियन उपयोगकर्ताओं के लिए

( विशेष रूप से डेबियन आधारित अन्य डिस्टरो पर काम कर सकते हैं)

root(बिना किसी पासवर्ड के) कनेक्ट करने के लिए निम्न को चलाएँ

sudo /usr/bin/mysql --defaults-file=/etc/mysql/debian.cnf

यदि आप --defaults-fileहर बार जब आप कनेक्ट करना चाहते हैं root, तो आप /etc/mysql/debian.cnfअपने होम डायरेक्टरी में कॉपी नहीं कर सकते :

sudo cp /etc/mysql/debian.cnf ~/.my.cnf

और फिर:

sudo mysql

2
यह सब लिया गया था। डिफ़ॉल्ट रूप से उबंटू में 'रूट' मूल रूप से 'रूट' नहीं है।
चैम एलियाह

21

अन्य सभी उत्तरों की कोशिश करने के बाद, इसने आखिरकार मेरे लिए क्या काम किया

sudo mysql -- It does not ask me for any password

-- Then in MariaDB/MySQL console:
update mysql.user set plugin = 'mysql_native_password' where User='root';
FLUSH PRIVILEGES;
exit;

मुझे इस पोस्ट में उत्तर मिला: https://medium.com/@chiragpatel_52497/solved-error-access-denied-for-user-root-localhost-of-mysql-programming-school-6e3611838d06


1
यह प्लगिन लाइन वास्तव में सहायक है। मैंने बहुत सारे संकलन की कोशिश की, लेकिन यह केवल Ver 14.14 डिस्ट्रिब्यूट 5.7.27 के लिए काम किया है, लिनक्स के लिए (x86_64)
अलेक्सांनिकोव

2
इससे मुझे mysql 5.7 के साथ भी मदद मिली। तो न केवल मारीदब के लिए लागू
podarok

मैं सिर्फ MySQL 8 Ubuntu 20.04 पर इसका इस्तेमाल किया और यह काम किया। skip-grant-table(My.conf या mysqlकमांड में) का उपयोग कर अन्य जवाब काम नहीं किया। मैं एक सेवा खाता ( askubuntu.com/a/120769/169836 ) का उपयोग कर सकता UPDATE mysql.user SET Password=PASSWORD('') WHERE User='root';था, लेकिन काम नहीं किया। प्लगइन भाग का उपयोग करते समय केवल चीजें काम करती थीं। धन्यवाद ~
हैमक्स

16

नए लिनक्स उपयोगकर्ताओं के लिए यह एक कठिन काम हो सकता है। मुझे mysql 8 के साथ इसे अपडेट करने दें (नवीनतम संस्करण अभी उपलब्ध है। 12.12-2018 तक 8.0.12)

  1. "Mysqld.cnf" कॉन्फ़िगरेशन फ़ाइल "/etc/mysql/mysql.conf.dk" पर खोलें।
  2. [Mysql] पाठ की अगली पंक्ति में स्किप-अनुदान-तालिकाएँ जोड़ें और सहेजें।
  3. Mysql सेवा को "sudo service mysql पुनरारंभ" के रूप में पुनरारंभ करें। अब आपका mysql किसी भी प्रमाणीकरण से मुक्त है।
  4. Mysql क्लाइंट से कनेक्ट करें (जिसे mysql-shell के रूप में भी जाना जाता है) mysql -u root -p के रूप में । अब के रूप में बंद करने के लिए कोई पासवर्ड नहीं है।
  5. रन sql कमांड फ्लश विशेषाधिकार;
  6. पासवर्ड को अब ALTER USER 'root' @ 'localhost' के रूप में 'MyNewPassword' द्वारा IDENTIFIED के रूप में रीसेट करें ;
  7. अब सामान्य अवस्था में वापस आते हैं; "mysqld.cnf" से उस लाइन "स्किप-ग्रांट-टेबल" को हटा दें और सेवा को पुनरारंभ करें।

बस।


5

अपने MySQL कार्यक्षेत्र में, आप बाईं ओर के साइडबार पर जा सकते हैं, प्रबंधन के तहत "उपयोगकर्ता और विशेषाधिकार" का चयन करें, उपयोगकर्ता खातों के तहत रूट पर क्लिक करें, दाएं अनुभाग में, अधिकतम क्वेरी, अपडेट, आदि को बढ़ाने के लिए "खाता सीमाएं" टैब पर क्लिक करें। फिर टैब "प्रशासनिक भूमिका" पर क्लिक करें और खाता एक्सेस देने के लिए बक्से की जांच करें। उम्मीद है की वो मदद करदे!


4

मैंने OSx में 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-allow-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

3

डेबियन 10 के तहत मेरे मामले में, त्रुटि

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

द्वारा हल किया गया था (GAY WAY)

sudo mysql -u root -p mysql

बुरा रास्ता:

mysql -u root -p mysql

3

ऊ- मेरे लिए कुछ भी काम नहीं किया! मेरे पास एक CentOS 7.4 मशीन है जो मारीडब 5.5.64 पर चल रही है।

यम से मारीदब की स्थापना के ठीक बाद मुझे जो करना था, वह था;

# systemctl restart mariadb
# mysql_secure_installation

mysql_secure_installationकई कदम के माध्यम से ले जाएगा, सहित "सेट रूट पासवर्ड? [हां / नहीं]"। बस "y" कहें और इसे पासवर्ड दें। अपनी इच्छानुसार अन्य प्रश्नों के उत्तर दें।

तब आप अपने पासवर्ड का उपयोग करके प्राप्त कर सकते हैं

# mysql -u root -p

यह बचेगा

# systemctl restart mariadb

चाबी

फिर, मैंने /bin/mysql_secure_installationयह पता लगाने के लिए स्रोत कोड की जाँच की कि यह मूल रूप से रूट पासवर्ड को बदलने में कैसे सक्षम था और यहाँ कोई भी अन्य उत्तर नहीं दे सकता था। आयात बिट है:

do_query "UPDATE mysql.user SET Password=PASSWORD('$esc_pass') WHERE User='root';"

... यह कहता है SET Password=...और नहीं SET authentication_string = PASSWORD...। तो, इस संस्करण के लिए उचित प्रक्रिया (5.5.64) है:

login using mysql -u root -p , using the password you already set.
Or, stop the database and start it with:
mysql_safe --skip-grant-tables --skip-networking &

Mysql> प्रॉम्प्ट से:

use mysql;
select host,user,password from user where user = 'root';
(observe your existing passwords for root).
UPDATE mysql.user set Password = PASSWORD('your_new_cleartext_password') where user = 'root' AND host = 'localhost';
select host,user,password from user where user = 'root';
flush privileges;
quit;

रनिंग mysqld_safe को मारें। फिर से शुरू करो रूट के रूप में लॉग इन करें: mysql -u -p। अपने नए पासवर्ड का उपयोग करें।

आप चाहें तो एक ही बार में सभी रूट पासवर्ड सेट कर सकते हैं। मुझे लगता है कि यह बुद्धिमान है:

mysql -u root -p
(login)
use mysql;
select host,user,password from user where user = 'root';
UPDATE mysql.user set Password = PASSWORD('your_new_cleartext_password') where user = 'root';
select host,user,password from user where user = 'root';
flush privileges;
quit;

यह सभी रूट पासवर्ड पर अपडेट करेगा: अर्थात, "लोकलहोस्ट", "127.0.0.1", और ":: :: 1" के लिए

भविष्य में, जब मैं RHEL8 पर जाता हूं या आपके पास क्या होता है, तो मैं / बिन / mysql_secure_installation की जांच करने और यह देखने के लिए याद करने की कोशिश करूंगा कि लोगों ने यह कैसे किया, वे कौन थे जिन्होंने इस ओएस पर mariadb को कॉन्फ़िगर किया था।


2

यदि आप मेरे जैसे हैं और उपरोक्त सभी सुझाव विफल हो गए, तो अपने मशीन पर mysql के सभी संस्करणों को अनइंस्टॉल करने के लिए आगे बढ़ें, इस कमांड का उपयोग करके सभी शेष mysql फाइलों को खोजें sudo find / -name "mysql"और rm -rfइससे जुड़ी mysql नाम के साथ हर फाइल या निर्देशिका (आपको संबंधित फाइलें चाहिए) प्रोग्रामिंग भाषा पुस्तकालयों के लिए)। अब MySQL का एक नया संस्करण स्थापित करें और आनंद लें। NB: आप अपने सभी डेटा को ढीला कर देंगे ताकि पहले अपने विकल्पों का वजन करें।


1

यदि आपके पास पर्याप्त विशेषाधिकार नहीं हैं तो यह हो सकता है। टाइप करें su, रूट पासवर्ड डालें और फिर से कोशिश करें।


1

ठीक है, मुझे पता है कि यह एक पुराना धागा है लेकिन अगर आप इस पेज पर Google के माध्यम से पहुँचे जैसे मैंने किया और उपरोक्त किसी भी समाधान पर काम नहीं किया, तो जो त्रुटि हुई वह मेरे अंत में 100% मूर्खता थी। मैं सर्वर से कनेक्ट नहीं था।एक बार जुड़ा हुआ सब कुछ चिकनी नौकायन था।

मामले में यह मेरे सेटअप को जानने में मदद करता है, मैं सीक्वल प्रो का उपयोग कर रहा हूं और एनपीएम पैकेज, mysql का उपयोग करके इसे नोड से जोड़ने की कोशिश कर रहा हूं। मुझे नहीं लगा कि मुझे वास्तव में (रन सीक्वल प्रो के अलावा) कनेक्ट करने की आवश्यकता थी क्योंकि मैं अपने ऐप से पहले से ही ऐसा कर रहा था।

यहां छवि विवरण दर्ज करें


0

समाधान: छोड़ दो!

मुझे बाहर सुनें, मैंने लगभग पूरे दो दिन बिताए बिना किसी लाभ के MySQL काम करने की कोशिश की, हमेशा अनुमति त्रुटियों के साथ अटक गया, जिनमें से कोई भी इस धागे में जवाब द्वारा तय नहीं किया गया था। यह इस बिंदु पर पहुंच गया कि मैंने सोचा कि अगर मैं जारी रखूं तो मैं पागल हो जाऊंगा।

इसे काम करने के लिए धैर्य से बाहर, मैंने SQLite को स्थापित करने के लिए आदेश भेजा, केवल 450KB का उपयोग करके, और इसने शब्द गो से बिल्कुल सही काम किया।

यदि आपके पास एक संत का धैर्य नहीं है, तो SQLite के साथ जाएं और अपने आप को बहुत समय, प्रयास, दर्द और भंडारण स्थान बचाएं ..!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.