सॉकेट '/tmp/mysql.sock' (2) के माध्यम से स्थानीय MySQL सर्वर से कनेक्ट नहीं किया जा सकता


143

मैंने MySQL सर्वर स्थापित किया है और इसे कनेक्ट करने की कोशिश कर रहा हूं, लेकिन त्रुटि हो रही है:

    Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

मैंने अपनी / tmp निर्देशिका की जाँच की है और कोई mysql.sock नहीं है। मुझे कहीं भी mysql.sock नहीं मिल रहा है। मैंने पढ़ा कि यह हो सकता है

    /var/lib/mysql/mysql.sock

लेकिन मैंने वहाँ भी जाँच की और यहाँ तक कि mysql निर्देशिका भी नहीं है, केवल कुछ पोस्टफ़िक्स चीज़ों के अंदर / lib। किसी को भी इस समस्या के साथ मेरी मदद कर सकता है?


2
मैं मैक ओएस एक्स पर काम कर रहा हूं
user3344382

नमस्ते, क्या आप उस कमांड को पेस्ट कर सकते हैं जिसे आप कनेक्ट करने के लिए उपयोग कर रहे हैं? क्या आपने भी MySQL शुरू किया है?
मार्क बटलर

@MarkButler मैं इस कमांड का उपयोग कर रहा हूं: / usr / स्थानीय / mysql / bin / mysql
user3344382

सही है, यह सिर्फ सर्वर नहीं चल रहा था। हालाँकि, मैं अभी भी नहीं समझ पा रहा हूँ कि mysql.sock कहाँ है, वहाँ कोई अन्य छिपी हुई जगह हो सकती है जहाँ वह निवास कर सकता है?
user3344382

यह त्रुटि बहुत सामान्य है, और यह कई कारणों से हो सकती है। एक साफ सारांश के लिए यहां देखें: medium.com/@7anac/…
जनक मीणा

जवाबों:


272

MySQL सर्वर शुरू करने का प्रयास करें:

mysql.server start


44
त्रुटि! सर्वर PID फ़ाइल को अपडेट किए बिना छोड़ दिया
bastianwegge

1
@wegginho आपकी त्रुटि संदेश का संभावित समाधान यदि आप MySQL को mysql सर्वर स्टार्ट पर
केसी रॉबिन्सन

mysql सेवाएं शुरू करना भूल गए!
गीकहेड्स

1
@bastianwegge मेरे मामले में /usr/local/var/mysql/USERNAME.local.err में त्रुटि फ़ाइल की जाँच की कोशिश मैं /tmp/mysql.sock नष्ट करने के लिए तो का उपयोग कर पुन: प्रारंभ किया थाmysql.server start
जोश ब्राडली

61

ओएस एक्स योसेमाइट को अपडेट करने के बाद मुझे एक ही सवाल मिला, अच्छी तरह से समाधान काफी सरल है, सिस्टम वरीयता की जांच करें -> mysql, स्थिति STOP थी। बस इसे पुनः आरंभ करें और यह अब मेरे मैक पर ठीक काम करता है।


1
एक टन @ धन्यवाद इतना आसान है, मैं अपने my.cnf फ़ाइल में सेटिंग्स बदलने पर एक अच्छा 45 मिनट बर्बाद कर दिया जब पूरे समय यह एकमात्र समस्या थी।
21

मेरे लिए भी काम किया धन्यवाद, डीएमजी स्थापना के संदर्भ में विचार नहीं था।
रामेश्वर वायेवारे

दुर्भाग्य से इसने मेरी मदद नहीं की
सिमुलमिलको जू

सरल और भयानक!
डेसमंड DAI

6
उम्म क्या? OSX के सिस्टम प्राथमिकता में MySQL विकल्प क्यों होगा?
AlxVallejo

45

MAMP के लिए

ln -s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock

से https://coderwall.com/p/w5kwzw/solved-can-t-connect-to-local-mysql-server-through-socket-tmp-mysql-sock

अद्यतन: हर बार जब मेरा कंप्यूटर पुनरारंभ होता है तो मुझे इस कमांड में प्रवेश करना होता है, इसलिए मैंने एक शॉर्टकट बनाया।

टर्मिनल प्रकार में निम्नलिखित करें:

~: vi ~/.profile

जोड़ना

alias ...='source ~/.profile'
alias sockit='sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock'

सहेजें।

टर्मिनल प्रकार में:

~: ... स्रोत के लिए .profile config।

अब टर्मिनल में आप बस टाइप कर सकते हैं

~: sockit

1
बहुत बढ़िया। बस ठीक है मैं देख रहा था।
जोश हाइलैंड

1
मैं कई बार इस पद पर वापस आया हूं और यह हमेशा काम करता है।
ट्रे कोपलैंड

MAMP के बाहर 5.7.1 पर mysql में अपग्रेड किया गया और त्रुटि में भाग गया। इसने मेरे लिए इसे तय किया
डेविड

यदि आप एक मैक बुक पर हैं और आप MAMP का काम करते हैं
kelrob-dev

32

निम्नलिखित आदेश से मेरी समस्या हल हो गई:

sudo chown -R _mysql:mysql /usr/local/var/mysql

sudo mysql.server start

1
3 घंटे की खोज के बाद इसने मेरी समस्या हल कर दी। मैं बस के साथ homebrew के माध्यम से mysql स्थापित किया है, brew install mysqlलेकिन homebrew आदेशों में से कुछ भी मुझे ठीक से काम करने के लिए कहा था। इससे हर समस्या दूर हो गई ... धन्यवाद !! वास्तव में वह पहली पंक्ति जो आपने लिखी है? इसका क्या मतलब है?
मेसकाइब

धन्यवाद, ठीक काम करता है!
निरोशन सेल्वनाथन

1
हे मेरे लिए यह था: sudo chown -R _mysql: mysql / usr / local / mysql / data
जुनैद भूरा

chown आर रिकर्सिवली मालिक आर बदल
अस्पताल बुध

एक प्राचीन 10.13.1 और होमब्रे ने यह त्रुटि मारीडब (10.2.10) स्थापित करते समय दी। इस मालिक परिवर्तन ने इसे ठीक कर दिया, इसलिए अब sudo brew services start mariadbबूट पर (केवल लॉगिन पर) मरदब शुरू करने के लिए भी काम करता है। वाह! धन्यवाद!
.ग्गी

16

सभी समाधानों की कोशिश करने के बाद, मेजबान को निर्दिष्ट करने के बाद इसने मेरे लिए ही काम किया

mysql -u root -p -h127.0.0.1

जब पासवर्ड के लिए पूछ रहे हैं

Enter password:

एंटर दबाए

और यह काम करेगा, अगर ऊपर की तरह सब कुछ ठीक है।


2
मैं मैक के लिए डॉकर का उपयोग करके एक डॉक कंटेनर के साथ mysql को सेटअप करता हूं, और मैक पर अपने 3306 पोर्ट को मैप करता हूं। जोड़ने के बिना -h 127.0.0.1, यह हमेशा संकेत देता है Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2); तर्क जोड़ने के बाद, यह अच्छी तरह से काम करता है।
इवि सांग

1
ऐसा इसलिए है क्योंकि 127.0.0.1 से गुजरना सॉकेट का उपयोग नहीं करता है, मुझे लगता है। संकीर्ण संकीर्णता का अधिक होना।
लुकास मॉर्गन

1
mysql -u root -h127.0.0.1 बिना -pध्वज के दौड़ना मेरे लिए काम कर गया, क्योंकि जब मैंने MySQL स्थापित किया तो मैंने कभी भी mysql_secure_installationकमांड नहीं चलाई । मेरी समझ यह है कि इस मामले में इंस्टॉलेशन कोई आवश्यक पासवर्ड नहीं चूकता है।
रिची थॉमस

1
एक जादू की तरह काम किया !
पांडुका डिसिल्वा

10

घंटों संघर्ष करने के बाद जो काम किया वह था

sudo mysql.server start

फिर के साथ एक सुरक्षित स्थापना करें

mysql_secure_installation 

फिर db से कनेक्ट करें

mysql -uroot -p

मायस्केल को होमब्रे के माध्यम से स्थापित किया गया है और संस्करण है

Server version: 5.7.21 Homebrew

संस्करण निर्दिष्ट करना उपयोगी हो सकता है क्योंकि समाधान संस्करण के आधार पर भिन्न हो सकता है।


9

आपकी mysql config फाइल में, जो /etc/my.cnfनीचे बदलाव करने के लिए मौजूद है और फिर mysqlddameon प्रक्रिया को पुनः आरंभ करता है

[client]
socket=/var/lib/mysql/mysql.sock

साथ ही इस संबंधित धागे की जांच करें

सॉकेट '/tmp/mysql.sock के माध्यम से स्थानीय MySQL सर्वर से कनेक्ट नहीं किया जा सकता


/.c निर्देशिका में कोई my.cnf फ़ाइल नहीं है। मुझे लगता है कि मैं उस फ़ाइल को मैन्युअल रूप से बना सकता हूं, लेकिन जैसा कि मैंने कहा कि / var / lib में कोई mysql निर्देशिका नहीं है, सॉकेट कैसे हो सकता है?
user3344382

मेरे द्वारा पोस्ट किए गए संबंधित थ्रेड की जांच करें और जांचें कि आपका mysql सर्वर वास्तव में चल रहा है या नहीं।
राहुल

मुझे फ़ाइल मिली/etc/mysql/my.cnf
Devon

यदि आप काढ़ा के साथ स्थापित करते हैं, तो आपको /tmp/mysql.sockजुर्राब स्थान के रूप में उपयोग करने की आवश्यकता होती है
मार्क शस्ट एम। अकादमी में

8

मेरी समस्या का समाधान करने के बाद:

चेक करें कि आपका MySQL सर्वर कहां से लिस्ट कर रहा है: netstat -nlp यदि यह टीसीपी को सूचीबद्ध कर रहा है तो "लोकलहोस्ट" के बजाय DB से कनेक्ट करते समय 127.0.0.1 का उपयोग करें।

यहाँ MySQL doc की जाँच करें


यह मेरे लिए काम करता है और साबित करता है कि मैस्कल जीवित है, लेकिन मैं स्थानीय सॉकेट से कनेक्ट क्यों नहीं कर सकता?
कॉलिन डी

8

यह कोशिश करो यह मेरे लिए काम किया।

sudo /usr/local/mysql/support-files/mysql.server प्रारंभ


यह रास्ता क्यों? मैक में इस पथ की पहचान करने के लिए आउटपुट /usr/local/mysql/bin/.How देते हुए "mysql" कमांड (MAC OS) का उपयोग करते समय कैसे करें?
विनीत भास्करन

हां, मार्ग तदनुसार बदलता है
वसन्त वसु

4

यदि आप Mac OS X में XAMPP का उपयोग कर रहे हैं और Homebrew के साथ MySQL स्थापित किया है तो आपको यह समस्या हो सकती है। XAMPP प्रबंधक विंडो में मैनेज सर्वर में जाएं और MySQL का चयन करें, फिर कॉन्फिगर फाइल पर क्लिक करें और वहां पर कॉन्फिगरेशन फाइल खोलें। आपके पास सॉकेट फाइल पथ है, पथ को अपने MySQL होस्ट कॉन्फिगर में रखें और इसे काम करना चाहिए।

यह कुछ इस तरह है:

...
[client]
#password   = your_password
port        = 3306
socket      = /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
...

उदाहरण के लिए, Django में:

...    
DATABASES = {
        "default": {
            "ENGINE": "django.db.backends.mysql",
            "NAME": "database_name",
            "USER": "user",
            "PASSWORD": "password",
            "HOST": "/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock",
            "PORT": "",
        }
    }
...

उम्मीद है की यह मदद करेगा।


3

पहले, यह जानना कि मेरे लिए डेटा निर्देशिका कहाँ थी। /usr/local/var/mysql यहाँ, एक्सटेंशन के साथ कम से कम एक फ़ाइल थी। मेरे स्थानीय मशीन के नाम के साथ। यह पता करने के लिए आवश्यक सभी जानकारी थी।

मुझे लगता है कि मैं पहले mysql 8 स्थापित करके खराब कर दिया। मेरा ऐप इसके अनुकूल नहीं है इसलिए मुझे वापस 5.7 पर डाउनग्रेड करना पड़ा

मेरे लिए काम करने वाला मेरा समाधान /usr/local/etc/my.cnf पर जा रहा था

इस लाइन को खोजें अगर वहाँ। मुझे लगता है कि इसके mysql 8 संबंधित:

mysqlx-bind-address = 127.0.0.1 

इसे हटा दें क्योंकि mysql 5.7 में कहा गया है कि यह त्रुटि लॉग की तरह नहीं है

इसके अलावा इस लाइन को वहां जोड़ दें अगर इसके बाइंड-एड्रेस के नीचे नहीं है।

socket=/tmp/mysql.sock

/tmpनिर्देशिका पर जाएं और वहां किसी भी mysql.sock फ़ाइलों को हटा दें। सर्वर शुरू होने पर, यह जुर्राब फ़ाइलों को फिर से बनाएगा

रोकी हुई अवस्था में mySQL के साथ डेटा डायरेक्टरी को ट्रैश करें। मेरा था /usr/local/var/mysql। यह वही जगह है जहां लॉग ऑन हैं

वहाँ से मैं भागा

>mysqld --initialize

फिर सब कुछ काम करना शुरू कर दिया ... यह कमांड आपको अंत में एक यादृच्छिक पासवर्ड देगा। अगले चरण के लिए उस पासवर्ड को सहेजें

अपना पासवर्ड असाइन करने के लिए यह रनिंग।

>mysql_secure_installation 

दोनों

>brew services stop mysql@5.7

तथा

>mysql.server start

अब काम कर रहे हैं। उम्मीद है की यह मदद करेगा। यह लगभग 3 घंटे का परीक्षण और त्रुटि है।



0

मैंने ऐसा करने में बहुत समय बिताया है, मैं अपने django ऐप को अपने सर्वर पर रखना चाहता हूं और जब मैं चलाता python manage.py migrateहूं तो मुझे यह प्रश्न मिलते हैं

तथा!! मैंने ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock इसे सेट किया यह अंत में काम किया!



0

टर्मिनल से mysql सर्वर को बंद करने और शुरू करने से मेरी समस्या हल हो गई। नीचे MacOs में mysql सर्वर को रोकने और शुरू करने के लिए cmds हैं।

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

नोट: मैक सिस्टम वरीयता से सेवाओं को पुनरारंभ करने से मेरे मैक में समस्या हल नहीं हुई। इसलिए टर्मिनल से पुनः आरंभ करने का प्रयास करें।


0

यदि आप एक macOS पर चल रहे हैं, तो पहले 'सिस्टम वरीयताएँ' पर जाना आसान है और देखें कि MySQL चल रहा है या नहीं।


-1

CentOS के लिए, init mysql फ़ाइल यहाँ स्थित है:

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