SQLSTATE [HY000] [2002] ऐसी कोई फ़ाइल या निर्देशिका त्रुटि नहीं


14

आपके अनुरोध को संसाधित करने में त्रुटि हुई है

SQLSTATE [HY000] [2002] ऐसी कोई फ़ाइल या निर्देशिका नहीं है

उपरोक्त त्रुटि हो रही है कृपया किसी ने मुझे इसे हल करने के लिए समाधान प्रदान करें।


मैंने कनेक्शन स्ट्रिंग बदलकर इसे ठीक कर लिया है, सुनिश्चित करें कि आपका mysql चालू है और आपके पास डेटाबेस में सभी तालिकाएँ मौजूद हैं।
तौकीर शफी

जवाबों:


12

PHP 7.0.13 के साथ Magento 2.1.0 स्थापित करते समय मेरे पास एक ही मुद्दा था।
मैं डेटाबेस होस्टनाम को लोकलहोस्ट के बजाय 127.0.0.1 के रूप में सेट करके इस मुद्दे को हल कर सकता था ।


यह कहां किया जाना चाहिए?
joeybab3

अंदर ./app/etc/env.php
Jino

10

यदि आपका सर्वर सूचीबद्ध app/etc/local.xmlहै localhostऔर यह त्रुटि Magento के त्रुटि लॉग में दिखाई देती है, लेकिन Magento अभी भी ठीक चल रहा है, तो mysql को पुनः आरंभ किया गया और सॉकेट /tmp/mysql.sockया जो भी सॉकेट फ़ाइल my.cnfअस्थायी रूप से गायब हो गई है।

क्योंकि यह गायब है, PDO mysql कनेक्टर रिपोर्ट SQLSTATE[HY000] [2002] No such file or directory

यदि आप लगातार इस त्रुटि को फेंक रहे हैं और अपवाद त्रुटि पृष्ठ से अलग Magento तक कोई पहुंच नहीं है, तो mysql पूरी तरह से दुर्घटनाग्रस्त हो गया है और आपको पता लगाने के लिए और mysql को पुनरारंभ करने के लिए अपने होस्टिंग प्रदाता की आवश्यकता है।


6

स्थानीय होस्ट के बजाय 127.0.0.1 के रूप में डेटाबेस होस्टनाम सेट करें।


2

यह तब भी हो सकता है जब उर फाइलसिस्टम भरा हुआ हो ... df -h 1st ... tocourse, ज्यादातर u shud इससे पहले अलर्ट प्राप्त करें ...

mysqld अभ्यस्त सामान्य रूप से चल रहा होगा, और एक "सुरक्षित" मोड में होगा

एचटीएच एसएनएस



1

यह गलत PHP संस्करण समस्या प्रतीत होती है, आपको यह चुनने की आवश्यकता है कि कमांड को चलाने के लिए किस php का उपयोग करना है:

/Applications/MAMP/bin/php/php7.1.20/bin/php bin/magento setup:upgrade

पुनश्च: ऊपर नमूना मैक के लिए है, आप इसे विंडोज़ या यूनिक्स के लिए भी कर सकते हैं।


0

सुनिश्चित करें कि आपने अपना ऐप / etc / local.xml ठीक से संपादित किया है। यदि आपकी टेबल के लिए कोई उपसर्ग नहीं है, तो सुनिश्चित करें कि उचित लाइन है:

<table_prefix><![CDATA[]]></table_prefix>

नहीं

<table_prefix>{{db_prefix}}</table_prefix>

0

यह आमतौर पर वेब सर्वर की तुलना में PHP कमांड लाइन द्वारा उपयोग किए जा रहे PHP के एक अलग उदाहरण के कारण होता है। विशेष रूप से, mysql.sockअगर यह मामला है तो इसे गलत माना जा सकता है।

यह निर्धारित करने के लिए कि आप PHP के एक उदाहरण का उपयोग कर रहे हैं या नहीं:

  1. अपने Magento सर्वर में प्रवेश करें।
  2. निम्नलिखित कमांड दर्ज करें:

    php -i | grep 'php.ini'

यह PHP कमांड-लाइन इंटरफेस (सीएलआई) द्वारा उपयोग की जाने वाली सेटिंग्स को निर्धारित करता है। ध्यान दें कि कहां php.iniस्थित है।

  1. यदि आपने पहले से ऐसा नहीं किया है, तो phpinfo.phpअपने वेब सर्वर पर सेट करें।
  2. के मान की तुलना करें लोडेड कॉन्फ़िगरेशन फ़ाइल से phpinfo.phpसे एक के साथ php -i

phpinfo.phpphp.iniआपके वेब सर्वर द्वारा उपयोग की गई फ़ाइल दिखाता है। यदि यह PHP के व्हाट्सएप से अलग है php.ini, तो आपको सभी PHP सेटिंग्स को PHP CLI और वेब सर्वर दोनों के अनुरूप बनाना होगा।

अतिरिक्त विवरण के लिए, अपने वेब सर्वर के साथ दिए गए प्रलेखन से परामर्श करें।


ऐसा हो सकता है - मुझे लगता है कि मैं अभी इसका सामना कर रहा हूं। लेकिन क्यों? इन ini फ़ाइलों की जाँच करने के लिए कोई विशेष विचार?
व्लादिफ्र

4
बल्कि आप इस पेज को कुछ शिष्टाचार प्रदान कर सकते हैं devdocs.magento.com/guides/v2.0/install-gde/trouble/php/…
शान

0

मेरे पास शेल के माध्यम से PHP के कई संस्करण उपलब्ध हैं - टाइपिंग php और दबाने वाला टैब दिखाता है जिनके बारे में मेरे स्वतः पूर्ण लोगों को पता है।

मेरे लिए, PHP 5.4, 5.5 और 5.6 सभी ठीक काम कर रहे थे, लेकिन PHP 7 mysql.sock नहीं ढूंढ रहा था, और "SQLSTATE [HY000] [2002] के साथ दुर्घटनाग्रस्त हो गया था " इस तरह की कोई फ़ाइल या निर्देशिका त्रुटि " इस प्रश्न में चर्चा नहीं की गई थी ।

# Prints [ok]
echo "<?php print(new mysqli('localhost', 'root', 'root', 'mysql') ? '[ok]' : '[error]').PHP_EOL; ?>" | php-5.6.20

# Prints [error] and shows a warning
echo "<?php print(new mysqli('localhost', 'root', 'root', 'mysql') ? '[ok]' : '[error]').PHP_EOL; ?>" | php-7.0.8

यह देखने के लिए कि आपके mysql सर्वर में कहां सॉकेट है, इस कमांड का उपयोग करें:

cat /etc/mysql/my.cnf | grep socket

मेरे मामले में, मेरी योनि प्रणाली में स्थापित पेरकोना मैसकल के साथ जुर्राब सॉकेट फ़ाइल यहाँ रहने के लिए हुई:

/var/run/mysqld/mysqld.sock

(ध्यान दें कि इसे mysqld कहा जाता है न कि केवल mysql )

मेरे पास चुनने के लिए php के कई संस्करण हैं और इन कमांडों ने मुझे दिखाया कि कौन से मुद्दे थे और कौन से ठीक थे:

मेरे लिए इसका उत्तर बस योनि-प्रवर्तक लिपि में कोड को /tmp/mysql.sock और /var/run/mysqld/mysqld.sock के बीच सम्‍मिलित करना था

if [ ! -L /tmp/mysql.sock ]; then
    echo "Creating symbolic link for php 7 to connect to mysql.sock"
    ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock
fi

नई सिमलिंक के साथ, अब से पहले दी गई परीक्षण स्क्रिप्ट PHP के सभी संस्करणों के लिए पूरी तरह से काम करती है और मैं 127.0.0.1 आईपी ​​एड्रेस देने के बजाय अपने कोड में लोकलहोस्ट का उपयोग कर सकता हूं ।


0

मुझे वही त्रुटि मिलती है "SQLSTATE [HY000] [2002] ऐसी कोई फ़ाइल या निर्देशिका नहीं"। और पाया कि MySQL सर्विस बंद कर दी गई थी। मैंने अपनी MySQL सेवा और इसके ठीक काम की शुरुआत की।


0

आपको अपने magento रूट डायरेक्टरी में env कॉन्फ़िगरेशन फ़ाइल में होस्टहोम को लोकलहोस्ट से 127.0.0.1 तक बदलना होगा

  • ओपन एप / etc / env.php
  • 'होस्ट' => 'लोकलहोस्ट' को 'होस्ट' => '127.0.0.1' में बदलें
  • फ़ाइल सहेजें और पुनः प्रयास करें
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.