UNIX सॉकेट फ़ाइल के लिए mysqld_safe निर्देशिका '/ var / run / mysqld' मौजूद नहीं है


187

Mysql_safe का उपयोग करते हुए mysql सर्वर 5.7.17 को शुरू करते समय, त्रुटि के आधार पर।

2017-02-10T17:05:44.870970Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2017-02-10T17:05:44.872874Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2017-02-10T17:05:44.874547Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.

इसे कैसे जोड़ेंगे ?

जवाबों:


501

यह अजीब लगता है कि इस निर्देशिका को स्थापित नहीं किया गया था - क्या आपने मैन्युअल रूप से my.cfg में सॉकेट फ़ाइल का पथ बदल दिया है?

क्या आपने इस निर्देशिका को स्वयं बनाने का प्रयास किया है, और सेवा को पुनः आरंभ कर रहे हैं?

mkdir -p /var/run/mysqld
chown mysql:mysql /var/run/mysqld

2
नहीं, मैंने मैन्युअल रूप से कोई परिवर्तन नहीं किया है। मैं निर्देशिका बनाकर यह कोशिश करूंगा। सुझावों के लिए धन्यवाद
राजदीप

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

2
दोनों के लिए sudo का इस्तेमाल किया था
Kasun राजपक्षे

1
@Capy - upvoted - @ मट क्लार्क - आप कृपया अपने उत्तर को संपादित करने के लिए उस इन्फ़ोमेशन को शामिल करें जिसे भले ही डीआईआर बनाया गया हो, लेकिन अगर हम चलाएंगे तो इसे हटा दिया जाएगा - $ sudo /etc/init.d/mysql stopधन्यवाद
रोहित धनखड़

अगर आपको इन चरणों का अनुसरण करने में अभी भी वही त्रुटि हो रही है, तो नोट करें कि sudoइसे हल कर दिया जाएगा क्योंकि यह निर्देशिका एक बार mysqlबंद हो जाने के बाद हटा दी जाती है और इसके बिना sudoइन फ़ोल्डरों तक पहुंच नहीं होगी !!!
जदयी

71

जब मैंने कोड का उपयोग किया mysqld_safe --skip-grant-tables &लेकिन मुझे त्रुटि मिली:

UNIX सॉकेट फ़ाइल के लिए mysqld_safe निर्देशिका '/ var / run / mysqld' मौजूद नहीं है।

$ systemctl stop  mysql.service
$ ps -eaf|grep mysql
$ mysqld_safe --skip-grant-tables &

मैंने हल कर लिया:

$ mkdir -p /var/run/mysqld
$ chown mysql:mysql /var/run/mysqld

अब मैं उसी कोड का उपयोग करता हूं mysqld_safe --skip-grant-tables &और प्राप्त करता हूं

mysqld_safe / var / lib / mysql से डेटाबेस के साथ mysqld डेमन शुरू करना

अगर मैं उपयोग $ mysql -u rootकरूँगा तो मुझे मिलेगा:

सर्वर संस्करण: 5.7.18-0ubuntu0.16.04.1 (Ubuntu)

कॉपीराइट (c) 2000, 2017, Oracle और / या इसके सहयोगी। सभी अधिकार सुरक्षित।

ओरेकल ओरेकल कॉर्पोरेशन और / या इसके सहयोगियों का एक पंजीकृत ट्रेडमार्क है। अन्य नाम उनके अपने स्वामियों के ट्रेडमार्क हो सकते हैं।

'सहायता' टाइप करें या मदद के लिए '\ h'। वर्तमान इनपुट स्टेटमेंट को क्लियर करने के लिए 'c' टाइप करें।

mysql>

अब पासवर्ड बदलने का समय:

mysql> use mysql
mysql> describe user;

तालिका और स्तंभ नामों को पूरा करने के लिए तालिका जानकारी पढ़ना। आप इस सुविधा को बंद कर सकते हैं -ए के साथ एक तेज स्टार्टअप प्राप्त करने के लिए

डेटाबेस बदल गया

mysql> FLUSH PRIVILEGES;
mysql> SET PASSWORD FOR root@'localhost' = PASSWORD('newpwd');

या यदि आपके पास एक mysql रूट खाता है जो हर जगह से जुड़ सकता है, तो आपको यह भी करना चाहिए:

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

वैकल्पिक विधि:

   USE mysql
   UPDATE user SET Password = PASSWORD('newpwd')
   WHERE Host = 'localhost' AND User = 'root';

और अगर आपके पास एक रूट खाता है जो हर जगह से पहुंच सकता है:

 USE mysql
 UPDATE user SET Password = PASSWORD('newpwd')
 WHERE Host = '%' AND User = 'root';`enter code here

अब quitmysql से जरूरत है और बंद करो / शुरू करो

FLUSH PRIVILEGES;
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start

अब फिर से 'mysql -u root -p' और पाने के लिए नए पासवर्ड का उपयोग करें

mysql>


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

6

CentOS में मेरे लिए काम करें:

$ service mysql stop
$ mysqld --skip-grant-tables &
$ mysql -u root mysql

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

$ service mysql restart

0

यदि आपके डेटाबेस में कोई डेटा नहीं है या आपके पास उस डेटा को पुनर्स्थापित करने के लिए एक और दूर है, तो आप निम्नलिखित प्रयास कर सकते हैं। आपको उबंटू सर्वर रूट पासवर्ड पता होना चाहिए, लेकिन mysql रूट पासवर्ड नहीं।

यह बहुत संभव है कि हम में से कई लोगों ने "mysql_secure_installation" स्थापित किया है क्योंकि यह एक सर्वोत्तम अभ्यास है। बिन निर्देशिका पर नेविगेट करें जहां mysql_secure_installation मौजूद हैं। यह उबंटू सिस्टम पर / बिन निर्देशिका में पाया जा सकता है। इंस्टॉलर को पुन: निर्देशित करके, आपको रूट डेटाबेस पासवर्ड को बदलने के बारे में संकेत दिया जाएगा।


लेकिन, मुझे लगता है कि यह केवल सुरक्षित mysql server.is का उपयोग करना है? यह इस समस्या में कोई फर्क नहीं पड़ता।
राजदीप

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