ERROR 1045 (28000): उपयोगकर्ता 'रूट' @ 'लोकलहोस्ट' (पासवर्ड का उपयोग कर: YES) के लिए प्रवेश निषेध है


184

मैं एक इलेक्ट्रिकल इंजीनियर हूं जो मुख्य रूप से प्रोग्रामिंग के बजाय पावर सिस्टम के साथ खेलता है। हाल ही में, मैं उबंटू पर एक सॉफ्टवेयर सूट स्थापित करने के लिए एक मैनुअल का पालन कर रहा हूं। मुझे mySQLवास्तव में कोई ज्ञान नहीं है । मैंने अपने उबंटू पर निम्नलिखित इंस्टॉलेशन किए हैं।

sudo apt-get update
sudo apt-get install mysql-server-5.5
sudo apt-get install mysql-client-5.5
sudo apt-get install mysql-common
sudo apt-get install glade
sudo apt-get install ntp

फिर मैं करता हूं

me@ubuntu:~/Desktop/iPDC-v1.3.1/DBServer-1.1$ mysql -uroot -proot <"Db.sql"

मैं निम्नलिखित त्रुटि संदेश के साथ समाप्त हुआ।

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

मैं इसे कैसे ठीक कर सकता हूं और जारी रख सकता हूं?


1
यह मुझे सख्ती से प्रोग्रामिंग- संबंधी नहीं लगता है । मैंने इसे सुपरयूज़र
उली कोहलर

भविष्य के आगंतुक, यहां बताए गए कई कारणों की जांच करना भी न भूलें: dev.mysql.com/doc/refman/8.0/en/problems-connecting.html
aderchox

जवाबों:


154

नोट: के लिए MySQL 5.7+ कृपया देखें @Lahiru से जवाब इस सवाल का। जिसमें अधिक वर्तमान जानकारी है।

MySQL के लिए <5.7:

डिफ़ॉल्ट रूट पासवर्ड रिक्त है (यानी खाली स्ट्रिंग) नहीं root। तो आप बस के रूप में लॉगिन कर सकते हैं:

mysql -u root

स्थापना के बाद आपको स्पष्ट रूप से अपना रूट पासवर्ड बदलना चाहिए

mysqladmin -u root password [newpassword]

ज्यादातर मामलों में आपको डीबी के साथ-साथ बड़े पैमाने पर काम करने से पहले अलग-अलग उपयोगकर्ता खाते भी सेट करने चाहिए।


5
@FarticlePilter -pध्वज पासवर्ड निर्दिष्ट करता है, इसलिए जब आप अपना रूट पासवर्ड बदलते हैं तो आप इसे पसंद करेंगे mysql -u root -p[newpassword]। आपके < [filename]द्वारा प्रदान किए गए उपयोगकर्ता क्रेडेंशियल के माध्यम से दिए गए पथ पर SQL फ़ाइल निष्पादित करने के लिए std इनपुट का उपयोग कर रहा है।
माइक ब्रेंट

27
मैंने बताए अनुसार कोशिश की mysqladmin -u root password abc1234, लेकिन मुझे मिल गया mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost' (using password: NO)'। आपको बहुत - बहुत धन्यवाद!
सिबस जुआ

2
इस सवाल में @Kanagaroo, ओपी ने कहा कि उन्होंने पहली बार MySQL स्थापित किया और फिर MySQL लाइन क्लाइंट के माध्यम से एक्सेस करने का प्रयास किया। ऐसा लगता है कि पहली बार मेरे पास पहुँच।
माइक ब्रांट

18
दरअसल mysql सामुदायिक सर्वर 5.7 के लिए, जब आप इंस्टॉल करते हैं तो डिफ़ॉल्ट रूट पासवर्ड बेतरतीब ढंग से उत्पन्न होता है। "अस्थायी पासवर्ड" के बारे में बात करने वाली लाइन के लिए अपने /var/log/mysqld.log की जाँच करें। चारों ओर गड़बड़ के घंटे बचाता है।
फिल

1
@BraianMellor यह MySQL के लिए समस्या को हल करता है <5.7 इसमें उबंटू पर डिफ़ॉल्ट (पोस्ट-इंस्टॉलेशन) रूट पासवर्ड रिक्त है (कोई पासवर्ड नहीं), जहां मूल प्रश्न में पोस्टर रूट / रूट का उपयोग करने की कोशिश कर रहा था। प्रश्न पासवर्ड खो जाने, पासवर्ड बदलने या इसी तरह के बारे में नहीं था। MySQL के नए संस्करणों के लिए मैंने जिस दूसरे उत्तर का संदर्भ दिया है वह सही है, क्योंकि उपयोगकर्ता को रैंडमली जेनरेट किए गए रूट पासवर्ड को देखने के लिए त्रुटि लॉग में देखना होगा।
माइक ब्रंट

114

मैं इस कथन को निष्पादित करके इस समस्या को हल करने में सक्षम था

sudo dpkg-reconfigure mysql-server-5.5

जो रूट पासवर्ड को बदल देगा।


10
बस मुझे क्या चाहिए ... लेकिन हर किसी के पास सर्वर का संस्करण 5.5 नहीं है। dpkg --get-selections | grep sqlअपने वर्जन को पाने के लिए उपयोग करें
Balmipour

1
@ बलीमपुर आरएचएल 6.x में प्रथम संस्करण की जाँच करने के लिए समतुल्य कमांड क्या होनी चाहिए
प्रथम

1
@ डिव को Rhel / सेंटो में mysql सर्वर को फिर से कॉन्फ़िगर करने के लिए क्या कमांड होना चाहिए
PrathamN

@PrathamN मैंने कभी भी लाल रंग का उपयोग नहीं किया था, लेकिन "रेड हैट चेक पैकेज संस्करण" के लिए गुग्लिंग मुझे इस तरह से कमांड देता है: केवल SQL पैकेज फ़िल्टर करने के लिए yum list installedजोड़ें | grep sql
बालमिपुर

जब मैं मैक ओएस एक्स में यह कमांड चलाता हूं, तो मुझे यह त्रुटि मिलती है sudo: dpkg-reconfigure: command not found:। कोई उपाय?
mOna

90

आपको पासवर्ड रीसेट करना होगा! मैक ओएक्सएक्स (परीक्षण और काम करने वाले) और ubuntu के लिए कदम

MySQL का उपयोग बंद करो

sudo service mysql stop

या

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

इसे सुरक्षित मोड में शुरू करें:

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

(ऊपर की लाइन पूरी कमांड है)

यह एक चालू कमांड होगा जब तक कि प्रक्रिया समाप्त नहीं हो जाती है तब तक एक और शेल / टर्मिनल विंडो खोलें, बिना पासवर्ड के लॉग इन करें:

$ mysql -u root

mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';

MySQL के नए संस्करणों के लिए @ IberoMedia की टिप्पणी के अनुसार, इस क्षेत्र को कहा जाता है authentication_string:

mysql> UPDATE mysql.user SET authentication_string =PASSWORD('password') WHERE User='root';

MySQL का उपयोग करके प्रारंभ करें:

sudo service mysql start

या

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

आपका नया पासवर्ड 'पासवर्ड' है।


3
कृपया, इस तरह से नहीं! @ दिवाज़ का उत्तर अधिक सुरक्षित है। डॉस-अनुदान-टेबल के बारे में डॉक्टर का हवाला देते हुए: यह किसी को भी पासवर्ड के बिना और सभी विशेषाधिकारों के साथ कनेक्ट करने में सक्षम बनाता है [...] क्योंकि यह असुरक्षित है, [...] --skip-grant-tablesके साथ संयोजन में उपयोग --skip-networkingकरते हैं ताकि दूरदराज के ग्राहकों को कनेक्ट करने से रोका जा सके। ओह, और यह भी, यह मेरे लिए काम नहीं किया। यही कारण है कि मैं यहां आया था: पी
बालमपौर

1
यदि आप इस तरह से जाते हैं , तो हाँ। यह मेरे लिए काम नहीं करता था, और @ Divz के उत्तर का अनुसरण करना मेरे लिए आसान लगता है, वैसे भी --मैं जो सुझाव दूंगा वह dpkg --get-selections | grep mysql-server-आपका सटीक MySQL संस्करण प्राप्त करने के लिए उपयोग कर रहा है , तो sudo dpkg-reconfigure mysql-server-5.x (बदलें 5) के लिए जाएं .x आपके सर्वर संस्करण के साथ, btw)। मैंने इस सटीकता के साथ @ डिवेज़ के उत्तर पर टिप्पणी की, लेकिन यह कई "धन्यवाद" टिप्पणियों से नकाबपोश है।
बालमपौर

4
अद्यतन उपयोगकर्ता सेट प्रमाणीकरण_स्ट्रिंग = पासवर्ड ('1111') जहां उपयोगकर्ता = 'रूट';
देजेल

2
यह वास्तव में काम किया ... अन्य समाधानों ने अभी भी मुझे वही त्रुटि दी।
eddy147

2
MySQL 5.7.6 के बाद से पासवर्ड कॉलम को "प्रमाणीकरण_स्ट्रिंग" नाम दिया गया था, यहां आप इसके बारे में और अधिक पढ़ सकते हैं: bugs.mysql.com/bug.php?id=76655
IberoMedia

55

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

mysql -u root -p 

जिसके बाद यह आपको इस तरह से एक पास शब्द के लिए पूछता है

Enter password: 

और फिर मैंने उपयोग किए गए पासवर्ड में टाइप किया। बस इतना ही


3
मजेदार यह कि अनुसंधान के दिनों के बाद यह मदद मिली।
girish_vr

@Girish_vr
XY-JOE

मेरे लिए काम किया! मेरा mysql-
kaspiotr

इसने मदद की, जो MySQL की तरफ से इतना अविश्वसनीय रूप से बेवकूफ है कि मैं अभी भी इस पर विश्वास नहीं कर सकता।
wscourge

39

सर्वर की प्रारंभिक शुरुआत में निम्नलिखित होता है, यह देखते हुए कि सर्वर की डेटा निर्देशिका खाली है:

  • सर्वर को इनिशियलाइज़ किया गया है।
  • एसएसएल सर्टिफिकेट और कुंजी फाइलें डेटा निर्देशिका में उत्पन्न होती हैं।
  • Validate_password प्लगइन स्थापित और सक्षम है।
  • सुपरयूज़र खाता 'रूट' @ 'लोकलहोस्ट' बनाया जाता है। सुपरयुसर का पासवर्ड एरर लॉग फाइल में सेट और स्टोर किया जाता है।

इसे प्रकट करने के लिए, निम्नलिखित कमांड का उपयोग करें:

shell> sudo grep 'temporary password' /var/log/mysqld.log

जनरेट किए गए अस्थायी पासवर्ड के साथ लॉग इन करके जितनी जल्दी हो सके रूट पासवर्ड बदलें और सुपरयूज़र खाते के लिए एक कस्टम पासवर्ड सेट करें:

shell> mysql -u root -p #Login to root user with some password

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass5!'; 

16
यह आशाजनक लग रहा था, लेकिन यह मेरे लिए काम नहीं करता है। जब मैं दौड़ता sudo grep 'temporary password' /var/log/mysqld.logहूं तो मुझे मिलता है/var/log/mysqld.log: No such file or directory
एरिक हेपरले - कोडस्लेयर2010

4
कोशिश करो sudo grep 'temporary password' /var/log/mysql/error.log। @ लहिरू समाधान ने मेरे लिए काम किया।
artemisian

17
मैंने sudo grep 'अस्थायी पासवर्ड' /var/log/mysql/error.log की कोशिश की, लेकिन यह कुछ भी नहीं लौटाता है।
सीखने वाला

2
कोशिश करो shell> sudo grep 'password' /var/log/mysql/error.log। मेरे लिए काम किया है, लेकिन मुझे लगता है: रूट @ लोकलहोस्ट एक खाली पासवर्ड के साथ बनाया गया है! कृपया - theinitialize-insecure विकल्प को बंद करने पर विचार करें। मेरा mysql संस्करण है: x 86_64 पर लिनक्स के लिए वेर 8.0.13 (MySQL सामुदायिक सर्वर - GPL)
kaspiotr

1
@EnginYilmaz जब आप समस्या होने पर mysql कमांड का सुझाव देते हैं, तो mysql भी सुलभ नहीं है?
R-obert

33

यदि समस्या अभी भी मौजूद है तो पास को बदलने के लिए मजबूर करने की कोशिश करें

/etc/init.d/mysql stop

mysqld_safe --skip-grant-tables &

mysql -u root

नया MySQL रूट यूजर पासवर्ड सेट करें

use mysql;
update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
flush privileges;
quit;

MySQL सर्वर बंद करो:

/etc/init.d/mysql stop

MySQL सर्वर शुरू करें और इसका परीक्षण करें:

mysql -u root -p

1
धन्यवाद। ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)मेरे सर्वर को भी परेशान कर रहा था। 'mysqld_safe' भी तब तक विफल रहा जब तक मैंने 'स्टेप माईलसकल्ड' को आपके चरण 1 से बाहर नहीं किया।
मार्कोस

कृपया, इस तरह से नहीं! @ दिवाज़ का उत्तर अधिक सुरक्षित है। डॉस-अनुदान-टेबल के बारे में डॉक्टर का हवाला देते हुए: यह किसी को भी पासवर्ड के बिना और सभी विशेषाधिकारों के साथ कनेक्ट करने में सक्षम बनाता है [...] क्योंकि यह असुरक्षित है, [...] --skip-grant-tablesके साथ संयोजन में उपयोग --skip-networkingकरते हैं ताकि दूरदराज के ग्राहकों को कनेक्ट करने से रोका जा सके। ओह, और यह भी, यह मेरे लिए काम नहीं किया। यही कारण है कि मैं यहाँ आया था: पी
बाल्मीपुर

2
इसके मुझे दे: ERROR 1054 (42S22): अज्ञात कॉलम 'पासवर्ड' 'फ़ील्ड सूची' में
एमडी। मोहिउद्दीन अहमद

@Anshu द्वारा उत्तर की जांच करें यह इसे संभालने का अधिक सुरक्षित तरीका है
मुगोमा जे। ओकोमा

1
@ MD.MohiuddinAhmed आपको नए संस्करण mysql-server का उपयोग करना चाहिए। इस उत्तर को देखें: stackoverflow.com/a/31122246/6242649
उदयराज देशमुख

32

यह तब होता है जब आपका पासवर्ड गायब है।

पासवर्ड भूल जाने पर बदलने का चरण:

  1. बंद करो MySQL सर्वर (लिनक्स पर):

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

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

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

    यदि आपको नीचे की तरह त्रुटि मिलती है:

    2018-02-12T08: 57: 39.826071Z mysqld_safe निर्देशिका '/ var / run / mysqld' UNIX
    सॉकेट फ़ाइल के लिए मौजूद नहीं है। mysql -u root ERROR 2002 (HY000): सॉकेट
    '/var/run/mysqld/mysqld.sock' (2) [1] + निकास 1 के माध्यम से स्थानीय MySQL सर्वर से कनेक्ट नहीं हो सकता

  3. MySQL सेवा निर्देशिका बनाएं।

    sudo mkdir /var/run/mysqld

    MySQL उपयोगकर्ता को सेवा निर्देशिका में लिखने की अनुमति दें।

    sudo chown mysql: /var/run/mysqld
  4. पृष्ठभूमि में mysql को चलाने के लिए चरण 2 में समान कमांड चलाएँ।

  5. Mysql -u root चलाएं आपको पासवर्ड डाले बिना mysql कंसोल मिलेगा।

    इन आदेशों को चलाएँ

    FLUSH PRIVILEGES;

    MySQL 5.7.6 और नए के लिए

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

    MySQL 5.7.5 और पुराने के लिए

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

    यदि USER USER कमांड काम नहीं करता है:

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

अब बाहर निकलें

  1. मैन्युअल रूप से शुरू किए गए इंस्टेंस को रोकने के लिए

    sudo kill `cat /var/run/mysqld/mysqld.pid`
  2. Mysql को पुनरारंभ करें

    sudo systemctl start mysql

2
मेरे मामले में, मुझे स्टेप 6 को संशोधित करना हैsudo kill `sudo cat /var/run/mysqld/mysqld.pid`
कोलूनर

1
यह वही है जिसने मेरे लिए काम किया है। चरण 5 में, 1. उपयोग करें USER 2. पासवर्ड का उपयोग बदलने के लिए -> उपयोगकर्ता सेट प्रमाणीकरण_string = PASSWORD ("पासवर्ड") अपडेट करें जहां उपयोगकर्ता = 'रूट';
बिक्रम

1
यह सबसे अच्छा समाधान है, मैं यह पता लगा सकता हूं। MBP '15 मॉडल पर macOS Mojave पर "5.7.26 MySQL सामुदायिक सर्वर (GPL)" का उपयोग करना। मुझे सिस्टम वरीयता से माईस्क्ल को रोकना पड़ा, और फिर चरण 2 और चरण 5 का पालन किया। और फिर मुझे ps -ef का उपयोग करके PID को देखकर MySQL प्रक्रिया को मारना पड़ा। grep mysql
cspider

12

मुझे इस बहुत कष्टप्रद समस्या का सामना करना पड़ा और ऐसे कई उत्तर मिले जो काम नहीं आए। मेरे पास आया सबसे अच्छा समाधान पूरी तरह से mysql की स्थापना रद्द करना और इसे फिर से स्थापित करना था। फिर से स्थापित करने पर आप रूट पासवर्ड सेट करते हैं और इससे समस्या ठीक हो जाती है।


sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-core-5.5 mysql-client-core-5.5
sudo rm -rf /etc/mysql /var/lib/mysql
sudo apt-get autoremove
sudo apt-get autoclean

मुझे यह कोड कहीं और मिला, इसलिए मैं इसका कोई श्रेय नहीं लेता। लेकिन यह काम करता है। इसे अनइंस्टॉल करने के बाद mysql स्थापित करने के लिए मुझे लगता है कि डिजिटल महासागर का इस पर एक अच्छा ट्यूटोरियल है। इसके लिए मेरे जिस्ट को चेकआउट करें।
https://gist.github.com/JamesDaniel/c02ef210c17c1dec82fc973cac484096


12

उबंटू -16.04 का उपयोग कर रहा हूँ: स्थापित mysql - 5.7। मेरे पास एक ही मुद्दा था: रूट उपयोगकर्ता के लिए लॉगिन से इनकार किया।

नीचे दिए गए चरणों की कोशिश की:

  1. dpkg --get-selections | grep mysql (mysql का संस्करण प्राप्त करने के लिए)।

  2. dpkg-reconfigure mysql-server-5.7

  3. mysql -u root -p

बिना -p जो आपको पासवर्ड पूछने के लिए संकेत नहीं देता है। एक बार जब आप अंदर हों, तो आप निम्न चरणों का पालन करके एक पासवर्ड बना सकते हैं:

CREATE USER 'your_new_username'@'your-hostname' IDENTIFIED BY 'your-password';

GRANT ALL PRIVILEGES ON *.* to 'your_new_username'@'your-hostname' WITH GRANT OPTION;

रूट से बाहर निकलें और ऊपर दिए गए लॉगिन से लॉगिन करें।

mysql -u <your_new_username> -p

किसी कारण से अभी भी सिर्फ mysql टाइप करने से काम नहीं चलता है। बिल्कुल भी। मैं इसे इस्तेमाल करने की आदत बनाने का सुझाव देता हूं mysql -u <name> -p



8

यदि कोई अन्य उत्तर आपके लिए काम नहीं करता है, और आपको यह त्रुटि मिली है:

mysqld_safe Logging to '/var/log/mysql/error.log'.
mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
[1]+  Exit 1                  sudo mysqld_safe --skip-grant-tables

जब तक आप अपना पासवर्ड रीसेट नहीं करते, तब तक चरण दर चरण नीचे दिए गए निर्देशों का पालन करें:

# Stop Your Server First
sudo service mysql stop

# Make MySQL service directory.
sudo mkdir /var/run/mysqld

# Give MySQL permission to work with the created directory
sudo chown mysql: /var/run/mysqld

# Start MySQL, without permission and network checking
sudo mysqld_safe --skip-grant-tables --skip-networking &

# Log in to your server without any password.
mysql -u root mysql


# Update the password for the root user:
UPDATE mysql.user SET authentication_string=PASSWORD('YourNewPasswordBuddy'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';

#if you omit (AND Host='localhost') section, it updates the root pass regardless of its host

FLUSH PRIVILEGES;
EXIT;

#kill mysqld_safe process
sudo service mysql restart

#Now you can use your new password to login to your Server
mysql -u root -p

#take note for remote access you should create a remote user and then grant all privileges to that remote user

यह उबंटू 18.04 LTS में mysql 5.7 के लिए सही उत्तर है। धन्यवाद
धीरज

सभी दूरस्थ पते के लिए: sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf -> बाइंड-पता = 0.0.0.0
मेहदी

7

मैंने MySQL को रूट यूजर ( $SUDO) के रूप में स्थापित किया और इसे यही मुद्दा मिला
यहां बताया गया है कि मैंने इसे कैसे तय किया-

  1. $ sudo cat /etc/mysql/debian.cnf

यह विवरण प्रदर्शित करेगा-

# Automatically generated for Debian scripts. DO NOT TOUCH! [client] host = localhost user = debian-sys-maint password = GUx0RblkD3sPhHL5 socket = /var/run/mysqld/mysqld.sock [mysql_upgrade] host = localhost user = debian-sys-maint password = GUx0RblkD3sPhHL5 socket = /var/run/mysqld/mysqld.sock

ऊपर हम पासवर्ड देख सकते हैं बस हम उस का उपयोग(GUx0RblkD3sPhHL5) करने जा रहे हैं-

  1. mysql -u debian-sys-maint -p Enter password:
    अब पासवर्ड प्रदान करें ( GUx0RblkD3sPhHL5 )।

  2. अब exitMySQL से और फिर से लॉगिन करें-

    mysql -u root -p Enter password:
    अब नया पासवर्ड प्रदान करें। यह सब, हमारे पास आगे उपयोग के लिए नया पासवर्ड है।

इसने मेरे लिए काम किया, आशा है कि आप भी मदद करें!


6

कृपया आधिकारिक दस्तावेज पढ़ें: मैसकल: रूट पासवर्ड रीसेट कैसे करें

यदि आपके पास टर्मिनल तक पहुँच है:

MySQL 5.7.6 और बाद में:

$ mysql
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

MySQL 5.7.5 और इससे पहले:

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

1
देता है: ERROR 1131 (42000): आप एक उपयोगकर्ता के रूप में MySQL का उपयोग कर रहे हैं और अनाम उपयोगकर्ताओं को पासवर्ड बदलने की अनुमति नहीं है
एमडी। मोहिउद्दीन अहमद

1
यह सामान्य है। आपका उपयोगकर्ता अनाम है। आपको निष्पादित करने की आवश्यकता है> mysql -u {your_username}
d.danailov

3

मैं Mac OSX में mysql-5.7.12-osx10.11-x86_64inosg का उपयोग कर रहा हूं

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

निर्देश का पालन करें

  1. के लिए जाओ cd /usr/local/mysql/bin/
  2. अस्थायी पासवर्ड दर्ज करें (जो कुछ इस तरह दिखाई देगा, "tsO07JF1 => 3"
  3. आपको mysql> प्रॉम्प्ट मिलना चाहिए।
  4. भागो, SET PASSWORD FOR 'root'@'localhost' = PASSWORD('{YOUR_PASSWORD}');यदि आप अपना पासवर्ड सेट करना चाहते हैं: "रूट" तो कमांड होगा,SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root');
  5. Daud ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
  6. Daud exit
  7. Daud ./mysql -u root -p
  8. अपना पासवर्ड टाइप करें। मेरे मामले में मैं टाइप करूंगा, "रूट" (बिना उद्धरण के)
  9. बस इतना ही।

सुविधा के लिए, आपको "/usr/local/mysql/bin"अपने पेट को जोड़ना चाहिए

अब कहीं से भी आप टाइप कर सकते हैं ./mysql -u root -p और फिर पासवर्ड टाइप करें और आपको mysql> प्रॉम्प्ट मिलेगा।

आशा करता हूँ की ये काम करेगा।


3

जवाब मूर्खतापूर्ण लग सकता है, लेकिन घंटों समय बर्बाद करने के बाद, यह मुझे काम करने के लिए मिला है

mysql -u root -p

मुझे त्रुटि संदेश मिला

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

भले ही मैं सही पासवर्ड टाइप कर रहा था (अस्थायी पासवर्ड जब आप पहली बार mysql स्थापित करते हैं)

पासवर्ड प्रॉपर ब्लिंक करने पर मैंने इसे ठीक से टाइप किया


2

यदि समस्या अभी भी मौजूद है तो पास को बदलने के लिए मजबूर करने की कोशिश करें

बंद करो MySQL सर्वर (लिनक्स पर):

/etc/init.d/mysql stop

बंद करो MySQL सर्वर (मैक ओएस एक्स पर):

mysql.server stop

Mysqld_safe डेमन की शुरुआत --स्काइप-ग्रांट-टेबल से करें

mysqld_safe --skip-grant-tables &
mysql -u root

नया MySQL रूट यूजर पासवर्ड सेट करें

use mysql;
update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
flush privileges;
quit;

बंद करो MySQL सर्वर (लिनक्स पर):

/etc/init.d/mysql stop

बंद करो MySQL सर्वर (मैक ओएस एक्स पर):

mysql.server stop

MySQL सर्वर सेवा शुरू करें और रूट द्वारा लॉगिन करने के लिए परीक्षण करें:

mysql -u root -p

1

बाय डिफॉल्ट पासवर्ड अशक्त होगा, इसलिए आपको नीचे दिए गए चरणों में पासवर्ड बदलना होगा।

mysql से कनेक्ट करें

रूट # mysql

Mysql का प्रयोग करें

mysql> अपडेट यूजर सेट पासवर्ड = पासवर्ड ('रूट') जहां यूजर = 'रूट'; अंत में, विशेषाधिकारों को पुनः लोड करें:

mysql> फ्लश विशेषाधिकार; mysql> छोड़ दिया



1

Ubuntu 16.04 (MySQL संस्करण 5.7.13) में मैं नीचे दिए चरणों के साथ समस्या को हल करने में सक्षम था:

  1. सेक्शन B.5.3.2.2 सेक्शन में दिए गए निर्देशों का पालन करें रूट पासवर्ड को रीसेट करना: यूनिक्स और यूनिक्स-जैसे सिस्टम MySQL 5.7 विवरण गाइड

  2. जब मैंने #sudo mysqld_safe --init-file = / home / me / mysql-init की कोशिश की और यह विफल रहा। त्रुटि /var/log/mysql/error.log में थी

    2016-08-10T11: 41: 20.421946Z 0 [नोट] init_file '/ home / me / mysql / mysql-init' का निष्पादन शुरू हुआ। 2016-08-10T11: 41: 20.422070Z 0 [ERROR] / usr / sbin / mysqld: फ़ाइल '/ home / me / mysql / mysql-init' नहीं मिली (Ercode: 13 - अनुमति अस्वीकृत) 2016-08-10T11: 41: 20.422096Z 0 [त्रुटि] गर्भपात

Mysql-init की फ़ाइल अनुमति समस्या नहीं थी, अपीयर अनुमति को संपादित करने की आवश्यकता थी

  1. #Sudo vi /etc/apparmor.d/usr.sbin.mysqld द्वारा संपादित करें

    ....
      /var/log/mysql/ r,
      /var/log/mysql/** rw,
    
    
    # Allow user init file
      /home/pranab/mysql/* r,
    
      # Site-specific additions and overrides. See local/README for details.
      #include <local/usr.sbin.mysqld>
    }
  2. #Sudo /etc/init.d/apparmor रीलोड करें

  3. Mysqld_safe को फिर से शुरू करें, ऊपर चरण 2 का प्रयास करें। Check /var/log/mysql/error.log सुनिश्चित करें कि कोई त्रुटि नहीं है और mysqld सफलतापूर्वक प्रारंभ हो गया है

  4. #Mysql -u रूट -p चलाएं

    पास वर्ड दर्ज करें:

वह पासवर्ड दर्ज करें जो आपने mysql-init में निर्दिष्ट किया था। आपको अब रूट के रूप में लॉग इन करने में सक्षम होना चाहिए।

  1. शटडाउन mysqld_safe द्वारा #sudo mysqladmin -u root -p शटडाउन

  2. #Sudo systemctl mysql द्वारा mysqld सामान्य तरीके से शुरू करें


1

यदि आपके पास Docker छवि (पोर्ट 6606 पर कहें) और एक Ubuntu स्थापित (पोर्ट 3306 पर) पोर्ट के रूप में MySQL है, तो यह निर्दिष्ट करना पोर्ट के लिए पर्याप्त नहीं है:

mysql -u root -p -P 6606

फेंक देंगे:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

चूंकि यह डिफ़ॉल्ट रूप से लोकलहोस्ट से जुड़ने की कोशिश कर रहा है, आपके स्थानीय आईपी को निर्दिष्ट करके समस्या को हल करता है:

mysql -u root -p -P 6606 -h 127.0.0.1

0

हाल के MySQL संस्करणों passwordमें mysql.userतालिका में कोई नहीं है ।

इसलिए आपको निष्पादित करने की आवश्यकता है ALTER USER। इस एक लाइन कमांड को फाइल में डालें।

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

और इसे init फ़ाइल के रूप में निष्पादित करें (रूट या mysql उपयोगकर्ता के रूप में)

mysqld_safe --init-file=/home/me/mysql-init &

MySQL सर्वर को शुरू करने के लिए बंद करने की आवश्यकता है mysqld_safe

साथ ही, इस init फ़ाइल को लोड करने के लिए apparmor अनुमतियों के साथ समस्या हो सकती है। यहां पढ़ें https://blogs.oracle.com/jsmyth/entry/apparmor_and_mysql


0

यदि आपने अभी तक पासवर्ड सेट नहीं किया है, तो चलाएं mysql -uroot, यह मेरे लिए काम करता है।


0

मैक पर, यदि आपको इंस्टॉलेशन में दिए गए पहले पासवर्ड के साथ लॉग इन करने में कोई समस्या है, तो शायद आप केवल mysql प्रक्रिया को मार सकते हैं और फिर कोशिश कर सकते हैं।

तो: 1- mysql के PID को खोजने के लिए निम्नलिखित कमांड चलाएँ:

ps -aef | grep mysql | grep -v grep

2- प्रक्रिया को मारना:

kill -15 [process id] 

तब आप इस आदेश का उपयोग करके प्रारंभिक पासवर्ड के साथ लॉगिन कर सकते हैं:

mysql -uroot -p

जो आपको अपना पासवर्ड डालने के लिए कहते हैं। बस प्रारंभिक पासवर्ड दर्ज करें।


0

मेरा मुद्दा भी ऐसा ही था:

ERROR 1045 (28000): उपयोगकर्ता 'रूट' @ 'लोकलहोस्ट' (पासवर्ड का उपयोग कर: NO) के लिए प्रवेश निषेध है।

लेकिन मेरे मामले में, कारण वास्तव में मूर्खतापूर्ण था। मैंने एक वर्ड डॉक्यूमेंट से कमांड कॉपी किया, और समस्या यह थी कि एक हाइफन में ASCII 2D कोड नहीं बल्कि यूनिकोड E28093 था।

गलत रास्ता:

mysql -u root pxxxx

सही रास्ता:

mysql -u root -pxxxx

दोनों समान दिखते हैं, लेकिन समान नहीं हैं (इसे आज़माएं, अपने पासवर्ड की जगह कॉपी और पेस्ट करें)।

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


0

मैंने @Lahiru द्वारा सही उत्तर देने की कोशिश की, लेकिन macOS Mojave पर MySQL सर्वर संस्करण 8.0.16 (समुदाय) के साथ काम नहीं किया।

ऊपर समीर चौधरी के निर्देशों का पालन किया और कुछ समायोजन के साथ, मैं रूट पासवर्ड बदलने और लोकलहोस्ट से रूट एक्सेस को सक्षम करने में सक्षम था।

अपडेट: इन सभी की आवश्यकता नहीं है, यदि आप होमब्रे का उपयोग करके मैक ओएस पर स्थापित कर रहे हैं: "काढ़ा स्थापित करें mysql"


0

मुझे उबंटू 18.04 एलटीएस और मैसकल सर्वर संस्करण 5.7.27-0ubuntu0.18.04.1 (उबंटू) के साथ यह समस्या थी।

मेरे समाधान (के रूप में चल रहा था जड़ के साथ sudo -i)

mysql <<-EOSQL
  use mysql;
  update user set plugin="mysql_native_password" where User='root';
  FLUSH PRIVILEGES ;
EOSQL

mysqladmin -u root password new_pw

0

मैं भी उसी समस्या को लेकर आया था, जो मैंने किया था

1) अपना cmd खोलें

2) C: \ Program Files \ MySQL \ MySQL Server 8.0 \ bin> पर नेविगेट करें (जहाँ MySQL सर्वर 8.0 आपके द्वारा स्थापित सर्वर के आधार पर भिन्न हो सकता है)

3) फिर निम्नलिखित कमांड mysql -u root -p लगाएं

4) मैं पासवर्ड के लिए संकेत दूंगा ... बस हिट दर्ज करें, जैसा कि कभी-कभी इंस्टॉल करते समय आपके द्वारा दर्ज किया गया पासवर्ड रिक्त द्वारा बदल दिया जाता है।

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

इस समाधान ने मेरे लिए विंडोज़ प्लेटफॉर्म पर काम किया


0

जबकि शीर्ष उत्तर (w / mysqladmin) ने मैक 10.15 पर काम किया, फिर यह उबंटू पर काम नहीं किया। फिर mysql के लिए सुरक्षित शुरुआत सहित कई अन्य विकल्पों की कोशिश की, कोई भी काम नहीं किया। इस प्रकार एक नई प्रतिक्रिया जोड़ना।

कम से कम जिस संस्करण के लिए मुझे 5.7.28-0ubuntu0.18.04.4उत्तर मिला, उसमें कमी थी IDENTIFIED WITH mysql_native_password। 5.7.28 वर्तमान एलटीएस पर डिफ़ॉल्ट है और इस प्रकार अधिकांश नई नई प्रणालियों के लिए डिफ़ॉल्ट होना चाहिए (20.04 एलटीएस सामने आने तक)।

मिला: https://www.digitalocean.com/community/questions/can-t-set-root-password-mysql-server और अब लागू

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

जो काम करता है


0

मुझे जो त्रुटि हुई वह थी

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

यह बंदरगाह पर चल रही समस्या थी।

डिफ़ॉल्ट रूप से mysql चालू है port 3306

आप इसे चलाकर देख सकते हैं

  • 32-बिट सिस्टम में:

    sudo /opt/lampp/manager-linux.run

  • 64-बिट सिस्टम में:

    sudo /opt/lampp/manager-linux-x64.run

और configureबटन पर क्लिक करें

xampp नियंत्रण कक्ष

मेरे मामले में पोर्ट 3307 पर चल रहा था और मैं जिस कमांड का उपयोग कर रहा था वह था

mysql -u root -p -P 3307 -h 127.0.0.1

0

मेरे मामले में मैं पास होने की कोशिश कर रहा था एक कंटेनर के लिए कमान। जिस स्थिति में केवल पहले शब्द की व्याख्या की गई थी। सुनिश्चित करें कि आप नहीं चल रहे हैं:

mysql

विरोध के रूप में:

mysql -uroot -ppassword schemaname

शायद उद्धृत करने का प्रयास करें:

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