Mysql.sock नहीं मिल सकता है


82

मुझे सिर्फ mysql को फिर से स्थापित करना था और मुझे इसे शुरू करने में समस्या हो रही है। इसे सॉकेट (mysql.sock) नहीं मिल सकता है। समस्या यह है कि न तो मैं कर सकता हूं। मेरे मैक ओएस एक्स 10.4 टर्मिनल में, मैं टाइप करता हूं: locate mysql.sockऔर मुझे वापस मिल जाता है /private/tmp/mysql.sock। यह समझ में आता है कि सॉकेट फ़ाइल उस स्थान पर मौजूद है, लेकिन यह वास्तव में नहीं है।

  1. मुझे सॉकेट फ़ाइल कैसे मिल सकती है?

  2. यदि पता लगाता है कि वह गलत स्थान पर लौट रहा है, तो उसके पास किसी प्रकार की मेमोरी और संभवतः इंडेक्स होना चाहिए। मैं उस इंडेक्स को कैसे रिफ्रेश कर सकता हूं?


1
/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
मक्सीमा ओपर्ज़

जवाबों:


139

अपने प्रश्न के पहले भाग का उत्तर देने के लिए:

Daud

% mysqladmin -p -u <user-name> variables

और 'सॉकेट' चर की जाँच करें


1
यदि मैं कर सकता हूं तो मैं इस उत्तर को पूरी तरह से सही में बदल दूंगा। अगर केवल मैं यह जल्दी ही जानता था!
Steph Rose

50
भागा हुआ mysqladmin variables। कब क्या करना है error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)'? :)
अलेक्जेंडर वालेन

मुझे @afEkenholm के रूप में एक ही त्रुटि मिल रही है और एक समाधान खोजने में सक्षम नहीं है। मैं sudo find / -name mysql.sockरूट डाइरेक्टरी से भाग गया और सिस्टम पर कहीं भी mysql.sock नहीं पा रहा था। मैंने Mac OS 10.7 के लिए 64 बिट dmg फ़ाइल का उपयोग करके MySQL स्थापित किया। वर्तमान में रनिंग Mavericks।
b_dubb

@b_dubb मैं आपकी स्थिति के साथ समान हूं, आपने अपने मुद्दों को कैसे हल किया?
मेगनझोउ

1
जल्दी से अन्य सभी के बिना सॉकेट परम को देखने के लिए: mysqladmin चर | grep सॉकेट
बार

49

इससे मेरी समस्या हल हो गई

mysql_config --socket

अपडेट करें

mysql_config हमें बता सकता है कि फ़ाइल mysql.sock कहाँ होनी चाहिए, लेकिन मेरे मामले में फ़ाइल मौजूद नहीं थी। इसलिए, मैंने my.cnf को हटा दिया है:

sudo rm -rf /etc/my.cnf

और फिर से शुरू किया mysql:

brew services restart mysql

फ़ाइल बनाई गई थी और mysql अब अच्छी तरह से चल रहा है।


7
वह आदेश आपको बताता है कि mysql.sock कहां है जो सवाल का जवाब देता है
यूजीन रामिरेज़

3
यह कमांड आपको यह नहीं बताता है कि फाइल कहां है। यह आपको बताता है कि mysql इसे कहां खोज रहा है: --socket के लिए कॉन्फ़िगरेशन सेटिंग।
मोर्कसिनाब

मेरे पास नहीं है ls: /etc/my.cnf: No such file or directoryमैं इसे पहले बना सकता हूं?
अभि

अगर आपके पास फ़ाइल को /etc/my.cnfदेखने की कोशिश नहीं है /usr/loca/etc/my.cnf- @Abhi
rwcorbett

20

MySQL डेमॉन शुरू होने पर सॉकेट फ़ाइल स्वचालित रूप से बनाई जानी चाहिए।

यदि यह नहीं पाया जाता है, तो सबसे अधिक संभावना है कि जिस निर्देशिका को माना जाता है वह मौजूद नहीं है, या कुछ अन्य फाइल सिस्टम समस्या सॉकेट को बनने से रोक रही है।

यह पता लगाने के लिए कि फ़ाइल कहाँ होनी चाहिए, उपयोग करें:

% mysqld --verbose --help | grep ^socket

4
या mysql --verbose --help | grep ^ सॉकेट
ओन्ड्रेज रफज

1
@ ऑन्ड्रेज निश्चित रूप से आपको बताता है कि ग्राहक को कहां लगता है कि वह देख रहा है? रनिंग mysqldकी बात यह है कि यह आपको यह बताना चाहिए कि सर्वर ने वास्तव में इसे कहां रखा है!
अलनीतक

मेरे xampp संस्थापन पर मैं डेमॉन को ढूंढ नहीं पाया, इसलिए इसके बिना प्रयास किया गया और इसने काम किया :) ... उन दृश्यों के पीछे क्या हुआ जिनका मुझे कोई सुराग नहीं है ...
Ondrej Rafaj


10

मेरी समस्या mysql.sock-file भी थी।

ड्रुपल इंस्टॉलेशन प्रक्रिया के दौरान, मुझे यह कहना था कि मैं किस डेटाबेस का उपयोग करना चाहता हूं लेकिन मेरा डेटाबेस नहीं मिला

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

सिस्टम mysql.sock खोज रहा है लेकिन यह गलत निर्देशिका में है

आपको बस इसे लिंक करना है;)

मुझे सभी महत्वपूर्ण informations को Google पर भेजने में बहुत समय लगा, लेकिन मुझे यह पता करने में भी घंटों लग गए कि मुझे कैसे अनुकूलित करना है, लेकिन अब मैं परिणाम प्रस्तुत कर सकता हूं: D

ps: यदि आप वास्तव में होना चाहते हैं तो आपको अपने लिंक /tmp/mysql.sock-file(यदि यह आपके सिस्टम में भी स्थित है) को php.ini (या php.default.ini) द्वारा दी गई निर्देशिका में लिंक करना होगाpdo_mysql.default_socket= ...


आपके द्वारा php.ini में pdo_mysql.default_socketपरिवर्तन करने के बाद आपको लोड करने के लिए परिवर्तनों के लिए वेबसर्वर को पुनः आरंभ करने की आवश्यकता हैsudo apachectl restart
Szekelygobe

5

मुझे सटीक रास्ता मिला है:

netstat -ln | grep -o -m 1 -E '\S*mysqld?\.sock'

चूँकि यह केवल पथ देता है और आपको किसी इनपुट की आवश्यकता नहीं होती है जो आप संभवतः इसे शेल स्क्रिप्ट में उपयोग कर सकते हैं।

इस काम के लिए MySQL वर्तमान में आपकी मशीन पर चलना चाहिए। MariaDB के लिए भी काम करता है।


बहुत बढ़िया जवाब! यह वास्तव में सॉकेट का स्थान ढूंढता है, अन्य उत्तरों में से किसी के विपरीत।
टायलर क्रिश्चियन

2

ऐसा लगता है कि फ़ाइल कहां है, और b) कहां है (और क्यों हम इसे ढूंढ नहीं पाते या grep करते हैं)। मुझे लगता है कि अलनीतक की बात यह थी कि आप यह जानना चाहते हैं कि यह कहां से जुड़ा था - लेकिन grep आपको लिंक नहीं दिखाएगा, है ना? फ़ाइल वहाँ नहीं रहती है, क्योंकि यह एक लिंक है यह सिर्फ एक संकेतक है। आपको अभी भी यह जानना होगा कि लिंक कहां रखा जाए।

मेरी जुर्राब फ़ाइल निश्चित रूप से / tmp में है और मुझे जो ERROR मिल रहा है, वह / var / lib / (न कि सिर्फ / var) में है, मैंने अभी / var / var / lib से लिंक किया है, और मुझे अभी भी त्रुटि मिल रही है "सॉकेट 'var / lib / mysql.sock' (2) के माध्यम से स्थानीय MySQL सर्वर से कनेक्ट नहीं हो सकता"।

नोट (2) त्रुटि के बाद .... मैंने एक और सूत्र पर पाया कि इसका मतलब है कि सॉकेट का उपयोग करने का वास्तव में प्रयास किया जा सकता है, लेकिन सॉकेट के साथ कुछ गलत है - तो मशीन को बंद करने के लिए - पूरी तरह से - ताकि सॉकेट बंद हो जाता है। फिर एक पुनरारंभ इसे ठीक करना चाहिए। मैंने यह कोशिश की, लेकिन यह मेरे लिए काम नहीं करता था (अब मैं सवाल करता हूं कि क्या मैंने बहुत जल्दी पुनः आरंभ किया? वास्तव में?) शायद यह किसी और के लिए एक समाधान होगा।


1
$ mysqladmin variables | grep sock

इसके बजाय इसे आज़माएं, यह असंबंधित जानकारी से छुटकारा पाने के साथ, मांग किए गए परिणाम का उत्पादन करेगा।


0

मेरे द्वारा चलाए गए खोज डेटाबेस को ताज़ा करने के लिए

/usr/libexec/locate.updatedb

0

(Q1) मैं सॉकेट फ़ाइल कैसे खोज सकता हूं?

सॉकेट फ़ाइल के लिए डिफ़ॉल्ट स्थान /tmp/mysql.sock है, अपने सिस्टम के उपयोग के लिए सॉकेट फ़ाइल को खोजने के लिए।

mysqladmin variables | grep socket

यदि आपने MySql को अभी स्थापित किया है तो mysql.sock फ़ाइल तब तक नहीं बनेगी जब तक कि सर्वर चालू न हो जाए। इसे शुरू करने के लिए इस कमांड का उपयोग करें।

sudo launchctl load -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist

यदि पासवर्ड के लिए कहा जाए तो आप उपयोगकर्ता नाम या इस तरह के अन्य उपयोगकर्ता नाम से गुजर सकते हैं। टर्मिनल आपको पासवर्ड के लिए संकेत देगा।

mysqladmin --user root --password variables | grep socket

(Q2) मैं इंडेक्स का पता कैसे लगा सकता हूं

इस आदेश के साथ पता db ताज़ा करें।

sudo /usr/libexec/locate.updatedb

0

मुझे मैक ओएस एक्स 10.11.6 पर वही त्रुटि मिल रही है:

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

सलाह के माध्यम से यहाँ और संबंधित प्रश्नों में बहुत पीड़ा और खुदाई करने के बाद, जिनमें से कोई भी समस्या को ठीक नहीं करता था, मैं वापस गया और स्थापित फ़ोल्डर्स को हटा दिया, और बस किया brew install mysql

अभी भी अधिकांश कमांड के साथ एक ही त्रुटि हो रही है, लेकिन यह काम करता है:

/usr/local/bin/mysqld

और रिटर्न:

/ usr / स्थानीय / बिन / mysqld: कनेक्शन के लिए तैयार।

संस्करण: '5.7.12' सॉकेट: '/tmp/mysql.sock' पोर्ट: 3306 होमब्रे


0

मैं mysql सॉकेट को बिल्कुल भी पुनर्स्थापित नहीं कर पाया mysql सर्वर (सभी तालिकाओं और phpmyadmin सेटिंग्स को संरक्षित किया गया था)। यहाँ आदेश हैं:

1) स्थापित करें

sudo apt-get install mysql-server

2) टर्मिनल कॉन्फ़िगरेशन चरणों का पालन करें

sudo mysql_secure_installation

3) स्थिति जांचें: ("सक्रिय: सक्रिय (चल रहा है)" लौटना चाहिए)

systemctl स्टेटस mysql.service


0

दुर्भाग्य से उपरोक्त में से किसी ने भी मेरे मामले में काम नहीं किया है। लेकिन आखिरकार मुझे समाधान मिल गया।

यह जानने के लिए कि mysql.sock फ़ाइल कहाँ है, बस xampp प्रबंधक खोलें, MySQL का चयन करें और दाईं ओर कॉन्फ़िगर पर क्लिक करें। कॉन्फिग पैनल पर Open Conf File पर क्लिक करें, और बस CMD + F शॉर्टकट दबाकर mysql.sock को खोजें।

मेरे मामले में, mysql.sock के मालिक को बदल दिया गया था, और मुझे इसे वापस मूल व्यवस्थापक में बदलना पड़ा: chmod root: admin mysql.sock

उसके बाद डेटाबेस एक्सेस किया गया था।


-4

मैं प्रश्न # 1 के साथ मदद नहीं कर सकता, लेकिन locateफ़ाइल डेटाबेस को फिर से ताज़ा करने के लिए , रन:

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