त्रुटि: 'सॉकेट के माध्यम से स्थानीय MySQL सर्वर से कनेक्ट नहीं हो सकता' /var/run/mysqld/mysqld.sock '(2)' - गुम /वर /run/mysqld/mysqld .sock


322

मेरी समस्या मेरे साथ शुरू हुई क्योंकि मेरे mysql इंस्टॉल पर किसी भी अधिक रूट के रूप में लॉग इन करने में सक्षम नहीं है। मैं पासवर्ड के बिना mysql को चलाने का प्रयास कर रहा था ... लेकिन जब भी मैंने कमांड चलाया

# mysqld_safe --skip-grant-tables &

मुझे कभी वापस नहीं मिलेगा। मैं पासवर्ड पुनर्प्राप्त करने के लिए इन निर्देशों का पालन करने की कोशिश कर रहा था ।

स्क्रीन इस तरह दिखता है:

root@jj-SFF-PC:/usr/bin# mysqld_safe --skip-grant-tables
120816 11:40:53 mysqld_safe Logging to syslog.
120816 11:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

और मुझे पासवर्ड रीसेट करने के लिए SQL कमांड टाइप करना शुरू करने का संकेत नहीं मिलता है।

जब मैं इसे दबाकर CTRL+ मारता हूं C, तो मुझे निम्नलिखित संदेश मिलता है:

error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'

Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!

यदि मैं कमांड को पुनः प्राप्त करता हूं और इसे लंबे समय तक छोड़ देता हूं, तो मुझे संदेशों की निम्नलिखित श्रृंखला मिलती है:

root@jj-SFF-PC:/run/mysqld# 120816 13:15:02 mysqld_safe Logging to syslog.
120816 13:15:02 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
120816 13:16:42 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

[1]+  Done                    mysqld_safe --skip-grant-tables
root@jj-SFF-PC:/run/mysqld#

लेकिन तब अगर मैं ऐसा करके रूट के रूप में लॉग इन करने की कोशिश करता हूं:

# mysql -u root

मुझे निम्न त्रुटि संदेश मिलता है:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

मैंने जाँच की और /var/run/mysqld/mysqld.sockफ़ाइल मौजूद नहीं है। फ़ोल्डर करता है, लेकिन फ़ाइल नहीं।

इसके अलावा, मुझे पता है कि यह मदद करता है या नहीं, लेकिन मैं भागा find / -name mysqldऔर यह साथ आया:

/var/run/mysqld - folder
/usr/sbin/mysqld - file
/run/mysqld - folder

मैं लिनक्स और MySQL के लिए नया हूं, इसलिए मुझे नहीं पता कि यह सामान्य है या नहीं। लेकिन मैं इस जानकारी को इस मामले में शामिल करता हूं, जब यह मदद करता है।

मैंने अंततः mysql को अनइंस्टॉल और पुनर्स्थापित करने का निर्णय लिया।

apt-get remove mysql-server
apt-get remove mysql-client
apt-get remove mysql-common
apt-get remove phpmyadmin

ऊपर के रूप में एक ही क्रम में फिर से सभी संकुल को पुनः स्थापित करने के बाद, phpmyadmin स्थापित करने के दौरान, मुझे एक ही त्रुटि मिली:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

इसलिए मैंने पुनः स्थापना / पुनः स्थापित करने का प्रयास किया। इस बार, मैंने संकुल की स्थापना रद्द करने के बाद, मैंने मैन्युअल रूप से सभी mysql फ़ाइलों और निर्देशिकाओं को mysql.badउनके संबंधित स्थानों में बदल दिया ।

/var/lib/mysql 
/var/lib/mysql/mysql
/var/log/mysql
/usr/lib/perl5/DBD/mysql
/usr/lib/perl5/auto/DBD/mysql
/usr/lib/mysql
/usr/bin/mysql
/usr/share/mysql
/usr/share/dbconfig-common/internal/mysql
/etc/init.d/mysql
/etc/apparmor.d/abstractions/mysql
/etc/mysql

तब मैं फिर से स्थापित करने की कोशिश की mysql-serverऔर mysql-clientफिर से। लेकिन मैंने देखा है कि यह मुझे एक पासवर्ड के लिए संकेत नहीं करता है। यह एक व्यवस्थापक पासवर्ड के लिए पूछने वाला नहीं है?


मुझे भी यही समस्या हुई। मैंने इसे अभी हल किया है। stackoverflow.com/questions/18150858/…
robert


केवल सर्वर रिबूट द्वारा हल किया गया, फिर mysql सेवा को पुनः आरंभ करें
bowpunya

@ कोई भी यह डुप्लिकेट नहीं है। यह एक /var/run/mysqld/mysqld.sockलापता है। आपके द्वारा लिंक की गई समस्या में वह फ़ाइल है।
मोटरबाइक

यहाँ कोई भी उत्तर या कहीं भी मुझे अपनी समस्या का समाधान नहीं मिला। जैसा कि यह एक नया प्रोजेक्ट था जिसे मैंने PostgreSQL में बदल दिया और यह सिर्फ काम करता है! :-)
जेम्स ब्रैडबरी

जवाबों:


194

अपने सिस्टम रन पर सभी सॉकेट फ़ाइलों को खोजने के लिए:

sudo find / -type s

मेरे Mysql सर्वर सिस्टम में सॉकेट खुला था /var/lib/mysql/mysql.sock

एक बार जब आप पाते हैं कि सॉकेट खोला जा रहा है, तो अपनी /etc/my.cnf फ़ाइल को सॉकेट फ़ाइल के पथ के साथ लाइन जोड़ें या संपादित करें:

socket=/var/lib/mysql/mysql.sock

कभी-कभी सिस्टम स्टार्टअप स्क्रिप्ट जिसने कमांड लाइन को निष्पादन योग्य लॉन्च किया था वह एक ध्वज निर्दिष्ट करता है --socket=path। यह ध्वज my.cnf स्थान को ओवरराइड कर सकता है, और इसके परिणामस्वरूप सॉकेट नहीं मिलेगा जहां my.cnf फ़ाइल इंगित करती है कि यह होना चाहिए। फिर जब आप mysql कमांड लाइन क्लाइंट को चलाने की कोशिश करते हैं, तो यह सॉकेट को खोजने के लिए my.cnf पढ़ेगा, लेकिन यह तब नहीं मिलेगा क्योंकि यह सर्वर से बना है, जहां से। इसलिए, जब तक आप परवाह नहीं करते हैं कि सॉकेट कहाँ रहता है, बस my.cnf को मैच करने के लिए बदलना चाहिए।

फिर, mysqld प्रक्रिया को रोकें। आप यह कैसे करते हैं यह सिस्टम द्वारा अलग-अलग होगा।

यदि आप linux सिस्टम में सुपर यूजर हैं, तो निम्न में से किसी एक को आज़माएं यदि आपको अपने मैसकल सेटअप उपयोग की विशिष्ट विधि का पता नहीं है:

  • service mysqld stop
  • /etc/init.d/mysqld stop
  • mysqladmin -u root -p shutdown
  • कुछ सिस्टमों को mysql को रोकने के लिए एक सुरुचिपूर्ण तरीके से सेटअप नहीं किया जाता है (या किसी कारण से mysql कोई प्रतिक्रिया नहीं देता है) और आप mysql को या तो समाप्त करने के लिए बाध्य कर सकते हैं:
    • एक कदम: pkill -9 mysqld
    • दो चरण (कम से कम पसंदीदा):
      • pgrep mysqlया तो के साथ mysql की प्रक्रिया आईडी का पता लगाएंps aux | grep mysql | grep -v grep
      • मान लें कि प्रक्रिया आईडी के 4969साथ समाप्त हो गया हैkill -9 4969

ऐसा करने के बाद आप एक pid फ़ाइल देखना चाहते हैं /var/run/mysqld/और इसे हटा सकते हैं

सुनिश्चित करें कि आपके सॉकेट पर अनुमतियाँ ऐसी हैं कि जो भी उपयोगकर्ता mysqld चला रहा है वह इसे पढ़ / लिख सकता है। एक आसान परीक्षण यह है कि इसे पूरा पढ़ने / लिखने के लिए खोलें और देखें कि क्या यह अभी भी काम करता है:

chmod 777 /var/run/mysqld/mysqld.sock

यदि वह समस्या को ठीक करता है, तो आप अपनी सुरक्षा सेटिंग्स के आधार पर सॉकेट की अनुमतियों और स्वामित्व को आवश्यकतानुसार दर्ज़ कर सकते हैं।

इसके अलावा, सॉकेट जिस डायरेक्टरी में रहता है, उसे mysqld प्रोसेस को चलाने वाले यूजर द्वारा री-सेल किया जा सकता है।


15
कृपया उपयोग करने की अनुशंसा न करें kill -9; ऐसे कई तरीके हैं, जिन्हें करने से पहले कोशिश करनी चाहिए।
इग्नासियो वाज़केज़-अब्राम

@ फ़ाइल फ़ाइल रूट 'खोज में इसे चलाएं। -नाम mysqld.sock '। मैंने सॉकेट फ़ाइल को / var / run के अलावा अन्य स्थानों पर देखा है। एक बार जब आप इसे पा लेते हैं तो आपको अपनी my.cnf फ़ाइल को संपादित करने की आवश्यकता हो सकती है, जहाँ यह पाया जाता है।
17

@ray, मैंने मूल कमांड को एक अलग तरीके से चलाने की कोशिश की (मुझे एक अन्य साइट पर एक ubuntu विशिष्ट पोस्ट मिली ..)। यहां मैं चलाए गए आदेश हैं: "sudo service mysql stop" और "sudo mysqld --skip-जाएगी-टेबल"। दूसरी कमांड करने के बाद, मुझे निम्न त्रुटि मिलती है: "InnoDB: लॉक करने में असमर्थ ।/ibdata1, त्रुटि, 11"। मुझे यह नहीं मिल रहा है ।/ibdata1 फ़ाइल ... InnoDB: जांचें कि आपके पास पहले से ही कोई अन्य mysqld प्रक्रिया नहीं है
dot

2
@ काम चलाएं ps -aux | grep mysqldऔर देखें कि क्या कोई अन्य mysql प्रक्रिया चल रही है
Ray

@ray। मैं अपने बालों को बाहर निकालता हूँ आदमी। मैंने mysql को उड़ाने और पुन: प्रयास करने का निर्णय लिया ... मेरी अपडेट की गई पोस्ट पर ध्यान दें।
डॉट

251

इस आदेश का प्रयास करें,

sudo service mysql start

+1 my.cnf सही निर्देशिकाओं की ओर इशारा कर रहा था, mysql सेवा द्वारा मृत्यु हो गई थी
wruckie

मैंने स्वीकार किए गए उत्तर की कोशिश की, लेकिन mysql.sock नहीं मिल सका, यह मेरे लिए काम किया। धन्यवाद
Giovanne अफोंसो

1
मुझे इस्तेमाल करना थाsudo service mysqld start
गेविन मिलर

10
sudo apt-get install mysql-serverअगर आप इसे पहले से ही स्थापित नहीं कर रहे हैं :)
लक्ष्य रखें

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

137

यह त्रुटि mysql के कई इंस्टॉलेशन के कारण होती है। कमांड चलाएँ:

ps -A|grep mysql

का उपयोग करके प्रक्रिया को मार डालो:

sudo pkill mysql

और फिर कमांड चलाएं:

ps -A|grep mysqld

इस प्रक्रिया को चलाकर भी मारें:

sudo pkill mysqld

अब आप पूरी तरह से तैयार हैं बस निम्नलिखित कमांड चलाएं:

service mysql restart
mysql -u root -p

बहुत अच्छी तरह से फिर से काम कर रहा है


हे लोग, मैं इसे ठीक करने की कोशिश कर रहे वेब पर चल रहा था। मेरी समस्या यह थी कि मैं डॉकटर को सेटअप करने की कोशिश कर रहा था। मैं यह mysql डेटा dir का उपयोग करना चाहता था जो पहले mysql द्वारा docker के बाहर उपयोग किया गया था ... वह ps कमांड सबसे अच्छा था!
माइकल

3
लगभग 4+ घंटे तक पूरे वेब पर चलने के बाद, यह आखिरकार काम कर गया। शीर्ष उत्तर होना चाहिए: +1:
शिवम गौड़

4
Mysql.service के लिए नौकरी विफल रही क्योंकि नियंत्रण प्रक्रिया त्रुटि कोड के साथ बाहर निकल गई। विवरण के लिए "systemctl स्टेटस mysql.service" और "journalctl -xe" देखें।
जॉन जो

1
Mysql.service के लिए नौकरी विफल रही क्योंकि नियंत्रण प्रक्रिया त्रुटि कोड के साथ बाहर निकल गई। विवरण के लिए "systemctl स्टेटस mysql.service" और "journalctl -xe" देखें।
अदीब अउरी

Tnx, आप मेरा समय बचाते हैं।
अलेक्जांडुर अटानासोव

41

समाधान आसान है।

  1. सबसे पहले, आपको पता लगाना होगा ("sudo find / -type s" के साथ टर्मिनल में) जहां आपकी mysql.sockफ़ाइल स्थित है। मेरे मामले में यह था/opt/lampp/var/mysql/mysql.sock
  2. टर्मिनल आग और जारी करें sudo Nautilus
    यह सुपर उपयोगकर्ता विशेषाधिकारों के साथ आपकी फ़ाइल प्रबंधक को शुरू करता है
  3. Nautilus से नेविगेट करें कि आपकी mysql.sockफ़ाइल कहाँ स्थित है
  4. फ़ाइल पर राइट क्लिक करें और मेक लिंक चुनें
  5. लिंक फ़ाइल का नाम बदलें mysqld.sockफिर फ़ाइल पर राइट क्लिक करें और इसे काटें
  6. पर जाएं /var/runऔर नामक फ़ोल्डर बनाने mysqldऔर इसे दर्ज
  7. अब राइट क्लिक करें और लिंक फाइल को पेस्ट करें
  8. देखा! अब आपके पास एक mysqld.sockफाइल होगी /var/run/mysqld/mysqld.sock:)

4
आप अपनी mysql.sock फ़ाइल कैसे ढूँढ सकते हैं? मैंने 'mysql.sock' / / -name खोजने की कोशिश की, लेकिन यह कुछ भी नहीं लौटाता है।
मैथ्यू लॉक

2
@MatthewLock सबसे पहले, सुनिश्चित करें कि mysql चल रहा है ("ps aux | grep mysql"), अन्यथा, कोई mysql.sock दिखाई नहीं देगा। दूसरा, "sudo find / -type s" का उपयोग करें, जो आपको mysql.sock
narengi

35
क्या होगा अगर आउटपुट sudo find / -type sमें कोई भी शामिल नहीं है mysql.sock?
जेफ

1
यह काम करता हैं। लेकिन मुझे नहीं पता कि पिछले वर्षों में ये डेवलपर्स कभी भी यह काम क्यों नहीं करते हैं?
यी जियांग

2
यदि यह "my / t-sype" के माध्यम से mysql.sock को प्राप्त करने के लिए दर्द हो रहा है - "mysql_config --socket" कमांड का उपयोग करने का प्रयास करें। आप इसे sudo apt-get install के साथ libmysqlclient-dev
alexche8

26

स्थापना के बाद बस MySQL सेवा शुरू करने की आवश्यकता है:

उबंटू के लिए:

sudo service mysql start;

CentOS या RHEL के लिए:

sudo service mysqld start;

इसके द्वारा पहले जाँच करें sudo systemctl status mysql.serviceऔर sudo systemctl start mysql.service। यह मेरे लिए काम करता है
बियोन्गिन यूं

16

MySQL 5.6 और 5.7 के साथ उबंटू पर एक बग है जहां var/run/mysqld/MySQL सेवा बंद होने या रिबूट होने पर गायब हो जाएगा। यह MySQL को चलने से रोकता है। यह वर्कअराउंड मिला, जो सही नहीं है, लेकिन कम से कम इसे रोकने / रिबूट करने के बाद चल रहा है:

mkdir /var/run/mysqld/
chown mysqld /var/run/mysqld/

धन्यवाद - यह मेरे लिए तय है, मुझे निर्देशिका का रीमेक बनाना है और सेवा के हर पुनरारंभ पर स्वामित्व को रीसेट करना है mysql - आधिकारिक तौर पर कहीं भी रिपोर्ट की गई त्रुटि को खोजने में सक्षम नहीं है या मैंने यहां लिंक पोस्ट किया होगा :)
djoe

1
यह कोशिश नहीं की है, लेकिन शायद यह आपकी मदद करेगा: एक newfile /etc/tmpfiles.d/mysql.conf बनाएँ: # systemd tmpfile settings for mysql # See tmpfiles.d(5) for details और फिर, d /var/run/mysqld 0755 mysql mysql - रिबूट के बाद, mysql सामान्य रूप से शुरू होना चाहिए। यह Bugs.launchpad.net/ubuntu/+source/mysql-5.6/+bug/1435823 से है , टिप्पणी 3. यदि आपको MySQL 5.7 के साथ यह समस्या थी, तो कृपया Launchpad पर टिप्पणी करें। जितने अधिक उपयोगकर्ता समस्या का समाधान करेंगे, उतना ही अधिक ध्यान दिया जाएगा।
मोटरबाइ

मेरे लिए काम किया ... mysql का उपयोग उपयोगकर्ता नाम के रूप में किया गया था न कि mysqld के रूप में
इवान पार्सन्स

/etc/tmpfiles.d/mysql.confप्रति मोटरबाइ की टिप्पणी के लिए लाइन जोड़ना मेरे लिए इस मुद्दे को तय करता है। एक Centos 7 OS और उपयोग पर mysql Ver 15.1 Distrib 10.3.11-MariaDB,
turrican_34

यह मेरे लिए मुद्दा तय किया।
shikata

14

ठीक है बस इन कोड को कॉपी और पेस्ट करें: यह टर्मिनल में सर्वर के अंदर किया जाना चाहिए, जब आपका mysql डेटाबेस ठीक से स्थापित नहीं है, और जब आपको यह त्रुटि मिल रही है: 'सॉकेट के माध्यम से स्थानीय MySQL सर्वर से कनेक्ट नहीं हो सकता' / var / run / mysqld / mysqld.sock '(2)'।

MySql बंद करो

sudo /etc/init.d/mysqld stop

इसे पुनरारंभ करें या इसे प्रारंभ करें

sudo /etc/init.d/mysqld restart or sudo /etc/init.d/mysqld start

इस तरह एक लिंक बनाएं और इसे सिस्टम को दें

ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

एक सुरक्षित इंस्टॉलेशन चलाएं जो आपको mysql को कॉन्फ़िगर करने के लिए आवश्यक सभी प्रक्रिया को निर्देशित करता है

/usr/bin/mysql_secure_installation

Can't connectजब मैं कमांड के ऊपर चलने की कोशिश करता हूं तो मुझे वही त्रुटि मिलती है ।
cjmling 16

बस कुछ मैंने खोजा, उबंटू चलाने वालों के लिए। यदि आप /etc/init.d/mysqld प्रारंभ का उपयोग करके mysqld शुरू करते हैं, तो आप इस मुद्दे पर वैसे भी चलेंगे। इसके बजाय सेवा mysql प्रारंभ का उपयोग करें और यह ठीक हो जाएगा। Infuriating, लेकिन मैंने इसे अंत में समझ लिया।
एडम शॉर्ट

11

मैंने एक ही त्रुटि का सामना किया और पाया कि यह संकुल के उन्नयन के कारण था, इसलिए अपने सिस्टम को पुनः आरंभ करने के बाद मैंने त्रुटि का समाधान किया।

मुझे लगता है कि sql पुस्तकालयों / संकुल अद्यतन के कारण त्रुटि हुई है, इसलिए यदि आप कुछ उन्नयन कर रहे हैं तो यह कोशिश करें :)


1
मैंने इसे पुनः स्थापित करने (या अपग्रेड) के बाद किया और अब यह काम करता है। कोई और सॉकेट संदेश नहीं। धन्यवाद!
लपेटी

8

इस समस्या का बहुत कारण है, लेकिन कभी-कभी केवल mysql सर्वर को पुनरारंभ करें, यह समस्या को ठीक करेगा।

sudo service mysql restart

7

Ubuntu पर XAMPP का उपयोग करना:

  1. Mysqld के अंदर / var / run निर्देशिका नामक एक फ़ोल्डर बनाएँ । आप कमांड का उपयोग करके पूरा कर सकते हैं sudo mkdir /var/run/mysqld

  2. Mysql.sock फ़ाइल के लिए एक प्रतीकात्मक लिंक बनाएँ जो XAMPP सर्वर द्वारा शुरू किए जाने पर बनाई गई हो। आप कमांड का उपयोग कर सकते हैं sudo ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock

ध्यान दें: mysql.sock फ़ाइल जब सर्वर शुरू कर दिया है बनाया है और हटाया जब सर्वर बंद कर दिया जाता है, तो कभी कभी लिंक आप तोड़ा जा प्रकट हो सकता है बनाया है, लेकिन यह जब तक आप सर्वर का उपयोग शुरू कर दिया है काम करना चाहिए है या तो sudo /opt/lampp/lampp startया किसी अन्य माध्यम।

  1. यदि यह पहले से ही चालू नहीं है तो सर्वर को शुरू करें और अपने प्रोग्राम को फिर से निष्पादित करने का प्रयास करें।

सौभाग्य! मुझे उम्मीद है कि आप इस बार इसे दूर कर लेंगे।


@MohsinKhan लोकलहोस्ट / phpmyadmin पर जाएं और वहां से डेटाबेस आयात करें
रॉबर्ट ओडोच

6

उपयोगकर्ता लोड कदम के जवाब ने मेरे लिए काम किया। कभी-कभी /etc/mysql/my.cnfक्लाइंट को ऐड लाइन में फाइल को एडिट करने की जरूरत होती है

[client]
password = your_mysql_root_password
port  = 3306
host  = 127.0.0.1
socket  = /var/lib/mysql/mysql.sock

यह मुझे देता है:mysql: unknown variable 'Host=127.0.0.1'
Splaktar

@Splaktar: एक टाइपो है। Hostलोअरकेस करने की आवश्यकता है hostऔर यह काम करेगा। इसके अलावा, इस समाधान ने मेरे लिए काम किया।
मोहम्मद फैसल

शानदार - यह मेरे और मेरे docker परिवेश के लिए काम कर रहा है - मुझे केवल IP को समायोजित करना था जो कि मेरे मामले में docker mysql कंटेनर ip 172.17.xx है
InforMedic

6

* त्रुटि: 'सॉकेट के माध्यम से स्थानीय MySQL सर्वर से कनेक्ट नहीं हो सकता' /var/run/mysqld/mysqld.sock '(2)'

समाधान

अंत में mysql को अनइंस्टॉल और रीइंस्टॉल करें। **

  • sudo apt-get remove mysql-server
  • sudo apt-get remove mysql-client
  • sudo apt-get remove mysql-common
  • sudo apt-get remove phpmyadmin

फिर से स्थापित करें

  • sudo apt-get install mysql-server-5.6

इस ऑपरेशन के बाद, 164 एमबी अतिरिक्त डिस्क स्थान का उपयोग किया जाएगा।

  • क्या आप जारी रखना चाहते हैं? [Y / n] Y पूरी स्थापना के लिए YES दबाएँ

...... .......

  • आखिर में आपको ये पंक्तियाँ मिलेंगी…।

    Libhtml-template-perl (2.95-1) सेट करना ...

    Mysql-सामान्य-5.6 (5.6.16-1 ~ exp1) की स्थापना ... प्रोबर्स ट्रिगर फॉर लिबेक-बिन (2.19-0ubuntu6) प्रसंस्करण ट्रिगर के लिए ureadahead (0.100.0-16) ...

  • और तब

    रूट @ ubuntu1404: ~ # mysql -u रूट -p (प्रत्येक पासवर्ड के लिए पहले यू का उपयोग करना चाहिए)

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

  • नोट: दर्ज किया गया पासवर्ड mysql के इंस्टॉलेशन टाइम पासवर्ड की तरह ही होना चाहिए (जैसे .root, सिस्टम, एडमिन, rahr आदि ...)

    फिर टाइप करें

  • USE rahul_db (डेटाबेस नाम);

धन्यवाद।**


कृपया उत्तर गुणवत्ता में सुधार करें
मो।

यह कई mysql संस्करणों को स्थापित करने के कारण मेरे लिए काम किया। भी हटा दें mysql-server-5.6/5.5, mysql-client-5.6/5.5। धन्यवाद!
ल्यूक स्कायर

मिला E: Package 'mysql-server-5.6' has no installation candidate, यह उबंटू 18.04 में मौजूद नहीं है
जूलियोसेर

6

सुनिश्चित करें कि आपकी दुर्गम सॉकेट फ़ाइल पथ '/var/run/mysqld/mysqld.sock' के समान है, अन्यथा पथ को अपने अनुसार बदलें। Myqqld बंद करो

$ sudo /etc/init.d/mysqld stop

यदि प्रक्रिया अभी भी चल रही है;

$ sudo pkill -9 mysqld

Mysql डायरेक्टरी निकालें जहाँ सॉकेट बनाने जा रहा है। मेरे लिए इसे हटाने की अनुमति नहीं थी, इसलिए मुझे मजबूरन हटाना पड़ा।

$ sudo mkdir -p /var/run/mysqld

स्वामित्व को सेट करें

$ sudo chown mysql:mysql /var/run/mysqld

Mysql शुरू करें

$ sudo /etc/init.d/mysql start

Mysql को जोड़ने की कोशिश कर रहा है

$ sudo mysql -u dbuser -p

हाँ thats एक ही जवाब मैं 11:56 पर 14 फ़र, '19 में दे दी है (नीचे देखें)
इंगो

आप जीवन रक्षक हैं।
साहिब खान

5

मुझे लगता है कि आपका MySQL सर्वर शुरू नहीं हुआ है। इसलिए निम्नलिखित कमांड में से एक का उपयोग करके सर्वर को शुरू करें।

#services mysql start

या

#/etc/init.d/mysql start

5

अस्थायी समाधान

शायद किसी को इस समस्या का सामना करना पड़ रहा है। मैं Ubuntu 14 पर Mysql कार्यक्षेत्र का उपयोग कर रहा हूं और यह त्रुटि मिली।

mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) when trying to connect

चलकर अपनी सॉकेट फ़ाइल खोजें sudo find / -type s, मेरे मामले में यह थी/run/mysqld/mysqld.sock

इसलिए, मैंने tmpडायरेक्टरी में इस फाइल का लिंक बनाया ।

sudo ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock

जैसा कि आप देख सकते हैं कि फ़ाइल का स्थान /tmpफ़ोल्डर में है, इसलिए इसे सुनिश्चित करने के लिए हटा दिया जाएगा। आप .sockफ़ाइल स्थान बदल सकते हैं । देखें @ user3002884 उत्तर।
बिलाल

मुझे पता है, मैं सिर्फ आपका जवाब पूरा कर रहा था ताकि अन्य उपयोगकर्ताओं को पता
चले

आपने मेरी जान बचाई :)
Mashpy रहमान

4

आप पा सकते हैं mysqld.sockमें /var/run/mysqldअगर आप पहले से ही स्थापित किया है mysql-server द्वाराsudo apt-get install mysql-server


4

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

/etc/my.cnfइस पंक्तियों को जोड़ने में :

[client]
socket=/var/lib/mysql/mysql.sock <= this path should be also same as is[mysqld]

और सेवा को फिर से शुरू करें: service mysql restart

यह मेरे लिए काम किया


4

यह कुछ समय पहले ही उल्लेख किया गया था, लेकिन इसने मेरे लिए तुरंत काम किया:

सेवा mysql पुनरारंभ करें


यह दिलचस्प है कि यह कैसे सरल, "mysql" कमांड का उपयोग करने से अलग है
luminol

3

मेरे मामले में दो mysqld प्रक्रियाएं चल रही थीं .. pkill -9 mysqld का उपयोग करके वैकल्पिक प्रक्रियाओं को मार दिया


मुझे इस प्रक्रिया को मारने के लिए 'सूडो' को जोड़ने की जरूरत थी।
चना

3

यदि आपके पास अपने सिस्टम पर बहुत सारे डेटाबेस और टेबल हैं, और यदि आपने innodb_file_per_tablemy.cnf में सेट किया है, तो आपका mysql सर्वर खुली हुई वस्तुओं / फाइलों से बाहर निकल सकता है (या इन वस्तुओं के लिए विवरणकर्ता) एक नई अधिकतम संख्या सेट करें साथ में

open-files-limit = 2048

और mysql को पुनरारंभ करें। यह दृष्टिकोण मदद कर सकता है जब सॉकेट बिल्कुल नहीं बनाया जाता है, लेकिन वास्तव में यह वास्तविक समस्या नहीं हो सकती है, एक अंतर्निहित समस्या है।


2

मैं सिर्फ Ubuntu 14.10 पर यह समस्या थी

बदल जाता है mysql-server अब स्थापित नहीं थे (किसी तरह इसे हटा दिया गया था), लेकिन मैं इसे सिर्फ इसलिए स्थापित नहीं कर सका क्योंकि कुछ टूटे हुए पैकेज और निर्भरता के मुद्दे / संघर्ष थे।

अंत में मुझे mysql को फिर से स्थापित करना पड़ा

sudo apt-get remove mysql-client
sudo apt-get install mysql-server


2

मेरा समाधान;

Ubuntu 18.04 (WSL)

/etc/mysql/my.cnf

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

/etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld]
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306

मैंने पोर्ट बदल दिया। यह मेरे लिए काम किया है। आप दूसरा पोर्ट लिख सकते हैं। उदाहरण 3355


2

यह त्रुटि क्यों हो रही है

मुझे mysql पुस्तकालयों के नए अपडेट प्राप्त हुए इसलिए मैंने इन त्रुटियों को प्राप्त करने के बाद अपने कुबंटू ओएस को अपडेट किया।


मैंने कोशिश की और मैंने इसे कैसे तय किया।

MySql-server सही ढंग से चल रहा है लेकिन जब मैंने इसके देने को जोड़ने की कोशिश की

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'.

मैंने जाँचा /var/run/mysqld/mysqld.sock'. इस निर्देशिका की । मेरी फाइलें मौजूद नहीं थीं।

मैंने इन कमांडों को जोड़ने की कोशिश भी की लेकिन मेरे लिए काम नहीं किया।

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

 sudo service mysql start

लगभग 2 घंटे राउंड बर्बाद करने के बाद मुझे इसका समाधान मिला

sudo apt-get clean
sudo apt-get update
sudo apt-get upgrade -f

उसके बाद मेरे लिए सब कुछ तय हो गया।


इससे मुझे समस्या को ठीक करने में मदद मिली। मुझे समझ में नहीं आता कि यह मेरे द्वारा
बताई गई

1

मेरे hostलिए 127.0.0.1काम करने के लिए बदल रहा है ।

फ़ाइल को संपादित करें /etc/mysql/my.cnfऔर नीचे दी गई पंक्ति को अनुभाग में जोड़ें:client

[client]
port  = 3306
host  = 127.0.0.1
socket  = /var/lib/mysql/mysql.sock

इसके बाद आपके साथ किया जाता है। निम्न आदेश निष्पादित करें।

sudo service mysql start

मेरे इस मित्र ने, मेरी मदद की :)
भार्गव नानकलेवा

@NBhargav मैं बहुत खुश हूँ कि आप उर समस्या को हल कर सकते हैं .. चीयर्स दोस्त .. har
दुलिथ डी कोस्टा

1

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

innodb_buffer_pool_size = 4096M

यह आमतौर पर 2048 तक ठीक चलता है, लेकिन मुझे लगता है कि मेरे पास 4 गिग्स का समर्थन करने के लिए आवश्यक मेमोरी नहीं है।

मुझे लगता है कि यह अन्य mysql कॉन्फ़िगरेशन सेटिंग्स के साथ भी हो सकता है।


1

मुझे एक CentOS VPS पर इसी तरह की समस्या थी। यदि MySQL प्रारंभ होने के बाद सही नहीं होगा या क्रैश नहीं करेगा, तो इन चरणों को आज़माएं:

1) my.cnf फ़ाइल ढूंढें (मेरा /etc/my.cnf में स्थित था) और लाइन जोड़ें:

innodb_force_recovery = X

X को 1 से 6 की संख्या के साथ बदलना, 1 से शुरू करना और फिर MySQL शुरू नहीं होने पर वृद्धि करना। 4, 5 या 6 पर सेट करने से आपका डेटा डिलीट हो सकता है इसलिए केयरफुल रहें और इससे पहले http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html पढ़ें ।

2) MySQL सेवा को पुनरारंभ करें। केवल सेलेक्ट चलेगा और इस समय यह सामान्य है।

3) अपने सभी डेटाबेस / स्कीमा को mysqldump के साथ एक-एक करके डंप करें, डंप को संकुचित न करें क्योंकि आपको उन्हें बाद में किसी भी तरह से अनप्लग करना होगा।

4) मूव (या डिलीट!) केवल bd की डायरेक्टरीज़ को अंदर / var / lib / mysql, अलग-अलग फाइलों को रूट में संरक्षित करता है।

5) MySQL को रोकें और फिर 1 में जोड़े गए लाइन को अनइंस्टॉल करें)। MySQL प्रारंभ करें।

6) सभी bd के 3 में डंप पुनर्प्राप्त)।

सौभाग्य!


1

टर्मिनल प्रॉम्प्ट पर निम्नलिखित आज़माएँ:

sudo mysql

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

मैसूर 5.7 ने कुछ चीजों को बदल दिया और डिफ़ॉल्ट रूप से खाते को हैक होने से बचाने के लिए रूट के लिए Cort_socket प्लगइन (mysql_native_password के विपरीत) का उपयोग करता है। आप रूट के लिए प्लगइन फ़ील्ड सेट करके इसे ओवरराइड कर सकते हैं, लेकिन जब तक आपके पास एक बहुत अच्छा कारण नहीं है कि आप शायद सुरक्षा को दरकिनार न करें। खासकर तब जब sudo mysqlकिसी mysql -u root -pभी तरह से आसान हो ।

मुझे यह जानकारी मिली - सभी जगहों पर - एक रास्पबेरी पाई मदद साइट से। ल्यूबुन्टू 18.04 के बाद एक आकर्षण की तरह काम किया और कुछ घंटों के लिए मुझसे अलग हो गए।


1

पहले dir / var / run / mysqld बनाएं

कमांड के साथ:

mkdir -p /var/run/mysqld

फिर डायर में कठोरता जोड़ें

chown mysql:mysql /var/run/mysqld

इस कोशिश के बाद

mysql -u root

1

मेरा वही मुद्दा था। एक घंटे तक संघर्ष करने के बाद, मैंने mysql-common, mysql-client, mysql-server को पुनर्स्थापित किए बिना इसे सही करने का एक तरीका पाया।

सबसे पहले, "/ var / run / mysqld" पर जाएं। आप पाएंगे कि mysql.sock मौजूद नहीं है। बस पूरी mysqld निर्देशिका को हटा दें और इसे फिर से बनाएँ और इसे आवश्यक विशेषाधिकार प्रदान करें।

# rm -rf /var/run/mysqld && mkdir /var/run/mysqld && chown mysql /var/run/mysqld/

अब, यह पूरी तरह से mysql प्रक्रिया को मार डालो। यह संभव हो सकता है कि यह आपको सेवा बंद करने के बाद भी "/etc/init.d/mysql स्थिति" कमांड चलाने पर "पेज क्लीनर की प्रतीक्षा" दिखाएगा।

सेवा को पूरी तरह से बंद करने के लिए, उपयोग करें

# pkill -9 mysqld

एक बार प्रक्रिया के मारे जाने के बाद, इसे फिर से उपयोग करके शुरू करने का प्रयास करें

# /etc/init.d/mysql start

और आप देखेंगे कि यह अच्छा काम करता है! और इसे रोकने में भी कोई समस्या नहीं होगी।

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