MySQL रूट पासवर्ड को रीसेट करने में असमर्थ, कभी भी प्रयास किया गया


9

ठीक है, चलो पहले स्पष्ट करते हैं कि मैंने इस मुद्दे के बारे में उबंटू से सभी प्रश्न पढ़े हैं और मैंने आधिकारिक डॉक्स से सभी चरणों का पालन किया है:

help.ubuntu.com

dev.mysql.com

मैं Ubuntu 16.04.1 LTS का उपयोग कर रहा हूं

इससे पहले कि कोई कुछ भी सुझाए जो मैंने पहले से ही कोशिश की है, मैं यह दिखाने जा रहा हूं कि मैंने क्या किया:

root@localhost:/# sudo /etc/init.d/mysql stop
[ ok ] Stopping mysql (via systemctl): mysql.service.

MySQL सही तरीके से बंद हो गया।

root@localhost:/# sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
[1] 3316
root@localhost:/#

यहां मुझे नहीं पता कि यह काम कर रहा था या नहीं, इसलिए मैं वैसे भी चरणों का पालन करता हूं।

root@localhost:/# mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
root@localhost:/#

ऐसा लगता है कि यह काम नहीं करता है, क्योंकि सेवा शुरू नहीं हुई है। जैसा कि मैं अगले चरणों के साथ जारी नहीं रख सकता, मैं अन्य विधि (पर्स) की कोशिश करता हूं।

उपयोग करने के बाद:

sudo apt-get --purge remove
sudo apt-get install

मैं अगले चरण की कोशिश करता हूं:

root@localhost:/# mysqladmin -u root password MyNewPassword
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
root@localhost:/#

जैसा कि यह भी काम नहीं करता है मैंने mysql वेब पर उल्लिखित अन्य विधियों की कोशिश की है:

तो मैं mysql प्रक्रिया को वहां बताए अनुसार मारता हूं और फिर उपयोग करता हूं

root@localhost:/# mysqld_safe --init-file=/home/me/mysql-init &
[1] 5267
root@localhost:/# 2017-02-01T12:47:49.250083Z mysqld_safe Logging to syslog.
2017-02-01T12:47:49.252427Z mysqld_safe Logging to '/var/log/mysql/error.log'.

2017-02-01T12:47:49.254765Z mysqld_safe Logging to '/var/log/mysql/error.log'.

2017-02-01T12:47:49.257045Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.

[1]+  Salida 1                mysqld_safe --init-file=/home/me/mysql-init
root@localhost:/#

अब जब मैं विकल्पों से बाहर हो रहा था, तो मैं उबंटू पर यहां बताए गए एक अन्य तरीके की भी कोशिश करता हूं:

root@localhost:/# sudo dpkg-reconfigure mysql-server-5.7
Checking if update is needed.
This installation of MySQL is already upgraded to 5.7.17, use --force if you still need to run mysql_upgrade
root@localhost:/#

और अब मैं वास्तव में विकल्पों से बाहर हूं, इसलिए किसी भी सुझाव का स्वागत है।

जवाबों:


16

मुझे भी यही समस्या थी, और मैंने इस लाइन को निष्पादित करके इसे हल किया:

$ sudo mkdir /var/run/mysqld; sudo chown mysql /var/run/mysqld

इस लाइन को निष्पादित करने से पहले:

root@localhost:/# mysqld_safe --init-file=/home/me/mysql-init &

मेरे लिए, इन चरणों ने बेहतर काम किया।

मुझे लगता है कि ऐसा करने के लिए एक क्लीनर तरीका है, लेकिन मेरे लिए, यह एक त्वरित और कुशल समाधान था।


1
thx, कि चाल किया;)
Ilovelinux

यह mysql 5.7 पर होता है। जब आप mysql सेवा को रोकते हैं / var / run / mysqld हटा दिया जाता है और जब आप फिर से सेवा शुरू करते हैं तो वह पुनः निर्मित हो जाती है।
Capy

1

मैं mysql को पुनः प्राप्त नहीं कर सका, चाहे मैंने कोई भी कोशिश की हो, मैंने पासवर्ड को रीसेट करने और रीसेट करने की आवश्यकता को समाप्त कर दिया।

मुझे Ubuntu 16.04.1 LTS पर इस रूट पर जाना था। मैंने MySql वेबसाइट से एसओ के साथ-साथ AskUbuntu Q & A की हर चीज़ पर एक घंटे या उससे अधिक के सभी अन्य सुझावों को आज़माने में बिताया, मुझे आखिरकार इसके साथ काम करना पड़ा:

नोट: जबकि यह उपयोगकर्ता रूट के लिए पासवर्ड दर्ज करता था, मेरे पास मूल पासवर्ड नहीं था इसलिए मैंने नए पासवर्ड के रूप में उपयोग किए जाने के लिए बस एक ही पासवर्ड दर्ज करें।

नोट: कोई /var/log/mysqld.log केवल /var/log/mysql/error.log

था। यह भी ध्यान दें कि यह मेरे लिए काम नहीं किया था:
sudo dpkg-reconfigure mysql-server-5.7

न ही किया था:
sudo dpkg-reconfigure --force mysql-server-5.5

MySQL सेवा निर्देशिका बनाओ।
sudo mkdir /var/run/mysqld

MySQL उपयोगकर्ता को सेवा निर्देशिका में लिखने की अनुमति दें।
sudo chown mysql: /var/run/mysqld

फिर:

  1. वर्तमान mysqld पिड को मार डालो
  2. sudo / usr / sbin / mysqld और के साथ mysqld चलाएं
  3. रन / usr / bin / mysql_secure_installation mysql_secure_installation से

    आउटपुट

    root @ myServer: ~ # / usr / bin / mysql_secure_installation

    MySQL सर्वर परिनियोजन को सुरक्षित करना।

    उपयोगकर्ता रूट के लिए पासवर्ड दर्ज करें:

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

    हां के लिए Y दबाएं। हां, नो के लिए कोई अन्य कुंजी: रूट के लिए मौजूदा पासवर्ड का उपयोग नहीं करना। रूट के लिए पासवर्ड बदलें? ((प्रेस y | Y फॉर हां, नो के लिए कोई अन्य कुंजी): y

    नया पासवर्ड:

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

    अनाम उपयोगकर्ताओं को निकालें? (प्रेस y | Y फॉर यस, नो के लिए कोई अन्य कुंजी): y सफलता।

    आम तौर पर, रूट को केवल 'लोकलहोस्ट' से कनेक्ट करने की अनुमति दी जानी चाहिए। यह सुनिश्चित करता है कि कोई व्यक्ति नेटवर्क से रूट पासवर्ड का अनुमान नहीं लगा सकता है।

    दूरस्थ लॉगिन को दूर करें? (प्रेस y | Y फॉर यस, नो के लिए कोई अन्य कुंजी): y सफलता।

    डिफ़ॉल्ट रूप से, MySQL 'परीक्षण' नामक एक डेटाबेस के साथ आता है जिसे कोई भी एक्सेस कर सकता है। यह भी केवल परीक्षण के लिए अभिप्रेत है, और इसे उत्पादन वातावरण में जाने से पहले हटा दिया जाना चाहिए।

    परीक्षण डेटाबेस निकालें और इसे एक्सेस करें? (प्रेस y | Y फॉर यस, नो के लिए कोई अन्य कुंजी): y

    • ड्रॉपिंग डेटाबेस परीक्षण ... सफलता।

    • परीक्षण डेटाबेस पर विशेषाधिकार हटा रहा है ... सफलता।

    विशेषाधिकार तालिकाओं को पुन: लोड करने से यह सुनिश्चित होगा कि अब तक किए गए सभी परिवर्तन तुरंत प्रभावी होंगे।

    अब विशेषाधिकार तालिका पुनः लोड करें? (प्रेस y | Y फॉर यस, नो के लिए कोई अन्य कुंजी): y सफलता।

    सब कुछ कर दिया!


0

मेरे पास एक ही समस्या थी और इसे हल किया:

# /etc/init.d/mysql stop
# service mysql stop
# mkdir -p /var/run/mysqld
# chown mysql:mysql /var/run/mysqld
# mysqld_safe --skip-grant-tables &
# mysql -u root
mysql> use mysql;
mysql> update user set authentication_string=password('1234') where user='root';

(यहां, authentication_stringपासवर्ड फ़ील्ड रखती है।)

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