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


319

मुझे विश्वास है कि मैंने अपनी (बहुत ही बुनियादी) साइट को फ़ॉर्बिटबिट में सफलतापूर्वक तैनात कर दिया है, लेकिन जैसे ही मैं कुछ कमांड चलाने के लिए SSH से जुड़ता हूं (जैसे php artisan migrateयाphp artisan db:seed ) हूं, मुझे एक त्रुटि संदेश मिलता है:

[PDOException]
SQLSTATE[HY000] [2002] No such file or directory

कुछ बिंदु पर माइग्रेशन ने काम किया होगा, क्योंकि मेरी टेबलें हैं - लेकिन यह इस बात की व्याख्या नहीं करता कि यह अब मेरे लिए काम क्यों नहीं कर रही है।



1
कभी-कभी यह सिर्फ इसलिए कि आपने अभी तक mysql स्थापित किया था
हसन गिलक

जवाबों:


142

त्रुटि संदेश इंगित करता है कि सॉकेट के माध्यम से एक MySQL कनेक्शन की कोशिश की जाती है (जो समर्थित नहीं है)।

लारवेल (कारीगर) के संदर्भ में, आप शायद एक अलग / सही वातावरण का उपयोग करना चाहते हैं। जैसे: php artisan migrate --env=production(या जो भी वातावरण)। देखें यहाँ


1
यह मेरी समस्या का समाधान था, हमारी कंपनी में डेवलपर्स में से एक होमस्टेड का उपयोग नहीं करता है और सॉकेट के माध्यम से mysql से जुड़ता है। मैंने अपने ऐप / database.php फ़ाइल के भीतर सॉकेट कॉन्‍फ़िगर हटा दिया। समस्या हल
बोरिसलेमके

मुझे सिर्फ mysqli.so एक्सटेंशन को php.ini में सक्षम करना था
मेहुलकुमार

4
मैं " 'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock'" जोड़ने के लिए किया था के लिए config / database.php
एंजेल कार्लोस डेल पोज़ो Muela

हैलो समुदाय, मुझे यह त्रुटि हो रही है, भले ही मैं लार्वा का उपयोग नहीं कर रहा हूं, क्या आप समस्या को यहां देख सकते हैं, यह stackoverflow.com/questions/60796332/…
किरण पटेल

655

लारवेल 4:app/config/database.php "होस्टहोस्ट" को "लोकलहोस्ट" से "127.0.0.1" फ़ाइल में बदलें।

लारवेल 5:.env "लोकलहोस्ट" से "127.0.0.1" फाइल में "DB_HOST" बदलें

मेरे साथ भी ठीक यही समस्या थी। उपरोक्त किसी भी समाधान ने मेरे लिए काम नहीं किया। मैंने "होस्ट" को /app/config/database.php फ़ाइल में "लोकलहोस्ट" से "127.0.0.1" में बदलकर समस्या हल की।

निश्चित नहीं है कि "लोकलहोस्ट" डिफ़ॉल्ट रूप से काम क्यों नहीं करता है, लेकिन मुझे यह जवाब सिम्फनी 2 पोस्ट में हल किए गए एक समान प्रश्न में मिला। https://stackoverflow.com/a/9251924/1231563

अपडेट: कुछ लोगों ने पूछा है कि यह फिक्स क्यों काम करता है इसलिए मैंने इस विषय पर थोड़ा शोध किया है। ऐसा लगता है जैसे वे विभिन्न कनेक्शन प्रकारों का उपयोग करते हैं जैसा कि इस पोस्ट में बताया गया है https://stackoverflow.com/a/9715164/1231563

यहां जो समस्या उत्पन्न हुई है वह यह है कि "लोकलहोस्ट" यूनिक्स सॉकेट का उपयोग करता है और मानक निर्देशिका में डेटाबेस नहीं पा सकता है। हालांकि "127.0.0.1" टीसीपी (ट्रांसमिशन कंट्रोल प्रोटोकॉल) का उपयोग करता है, जिसका अनिवार्य रूप से मतलब है कि यह आपके कंप्यूटर पर "स्थानीय इंटरनेट" के माध्यम से चलता है इस मामले में यूनिक्स सॉकेट की तुलना में बहुत अधिक विश्वसनीय है।


3
अजीब है कि यह मेरे लिए भी समाधान था, लेकिन मैं कमांड लाइन से mysql --host = localhost के साथ कनेक्ट करने में सक्षम हूं - जो काम करता है, लेकिन पीडीओ से नहीं।
जॉन

26
मैं जानना चाहूंगा कि localhostकाम क्यों नहीं करता है और 127.0.0.1करता है ??
जस्टिन

6
यह मेरे लिए कमांड लाइन (टर्मिनल) पर एक php फ़ाइल चलाने वाले MAMP सिस्टम पर काम करता है। यह एक वेबपेज के रूप में काम करता था, लेकिन जब तक मैंने लोकलहोस्ट को '127.0.0.1' में नहीं बदला, तब तक कमांड लाइन फ़ाइल के रूप में नहीं
सैमुअल फुलमैन

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

10
A Unix socket file is used if you do not specify a host name or if you specify the special host name localhost. dev.mysql.com/doc/refman/5.7/en/can-not-connect-to-server.html
x-yuri

94

मुझे वही समस्या मिली और मैं मैक ओएस एक्स 10.10 योसेमाइट चला रहा हूं। मैंने Apache Server और PHP को सक्षम किया है जो पहले से ही OS के साथ आता है। फिर मैंने शुरू करने के लिए सिर्फ mCrypt लाइब्रेरी को कॉन्फ़िगर किया। उसके बाद जब मैं मॉडल और डीबी के साथ काम कर रहा था तो मुझे त्रुटि मिली:

[PDOException]
SQLSTATE[HY000] [2002] No such file or directory

मेरे द्वारा पाया गया कारण सिर्फ इसलिए है क्योंकि PHP और MySQL स्वयं कनेक्ट नहीं हो सकते हैं। इस समस्या को ठीक करने के लिए, मैं अगले चरणों का पालन करता हूं:

  1. एक टर्मिनल खोलें और mysql के साथ कनेक्ट करें:

    mysql -u root -p
  2. यह आपसे संबंधित पासवर्ड मांगेगा। फिर एक बार जब आप mysql promt टाइप करें तो अगली कमांड टाइप करें:

    mysql> show variables like '%sock%'
  3. आपको कुछ इस तरह मिलेगा:

    +-----------------------------------------+-----------------+
    | Variable_name                           | Value           |
    +-----------------------------------------+-----------------+
    | performance_schema_max_socket_classes   | 10              |
    | performance_schema_max_socket_instances | 322             |
    | socket                                  | /tmp/mysql.sock |
    +-----------------------------------------+-----------------+
  4. अंतिम पंक्ति का मान रखें:

    /tmp/mysql.sock
  5. अपने laravelप्रोजेक्ट फ़ोल्डर में, डेटाबेस के लिए देखें। एफपी फ़ाइल वहाँ है जहाँ आप डीबी कनेक्शन मापदंडों को कॉन्फ़िगर करते हैं। में mysql खंड अंत में अगले पंक्ति जोड़ें:

    'unix_socket' => '/tmp/mysql.sock'
  6. आपके पास ऐसा कुछ होना चाहिए:

    'mysql' => array(
            'driver'    => 'mysql',
            'host'      => 'localhost',
            'database'  => 'SchoolBoard',
            'username'  => 'root',
            'password'  => 'venturaa',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'unix_socket' => '/tmp/mysql.sock',
        ),

अब बस परिवर्तन सहेजें, और पृष्ठ को पुनः लोड करें और इसे काम करना होगा!


3
सबसे "सीधे जारी" समाधान। थैंक्स, इसने मुझे MAMP के साथ
लारवेल

इसके लिए धन्यवाद। इसने मेरे लिए काम किया। OSX 10.10.5 MAMP प्रो का प्रयोग
marknt15

यह मेरे लिए और साथ ही MAMP समर्थक और OS X 10.11.x के साथ काम करता है। समाप्त किया जा रहा है:/Applications/MAMP/tmp/mysql/mysql.sock
Bort लाइसेंस प्लेट

1
+1। "लोकलहोस्ट" के बजाय कॉन्फ़िगरेशन में "127.0.0.1" का उपयोग करना, जैसा कि यमार्टिनो ने कहा कि उनके उत्तर में अच्छी तरह से काम करता है, लेकिन यह एक सॉकेट के साथ तेज है और यह उत्तर समस्या को हल करता है। यह शर्म की बात है कि "लोकलहोस्ट" ऐसे अजीबोगरीब तरीके से व्यवहार करता है जब unix_socket को परिभाषित किया जाता है ...
Shautieh

@GregFerrell हाँ, यह सच है, लेकिन अच्छी तरह से ... मुझे आशा है कि यह उपयोगी हो सकता है
alexventuraio

51

मुझे [PDOException] SQLSTATE[HY000] [2002] No such file or directoryएक अलग कारण के लिए त्रुटि का सामना करना पड़ा । मैंने Apache 2.4.7, PHP v5.5.10 और MySQL 5.6.16 के साथ Ubuntu 12.04 पर एक बिल्कुल नया LAMP स्टैक बनाना शुरू किया था। मैंने अपनी साइटों को वापस ले लिया और उन्हें निकाल दिया। लेकिन, मैं अपनी Laravel 4.2.x आधारित साइट को लोड नहीं कर सका क्योंकि [PDOException]उपरोक्त है। इसलिए, मैंने php -i | grep pdoइस लाइन को देखा और देखा:

pdo_mysql.default_socket => /tmp/mysql.sock => /tmp/mysql.sock

लेकिन, मेरे /etc/my.cnf में sock फ़ाइल वास्तव में है /var/run/mysqld/mysqld.sock

इसलिए, मैंने अपना php.ini खोला और इसके लिए मूल्य निर्धारित किया pdo_mysql.default_socket:

pdo_mysql.default_socket=/var/run/mysqld/mysqld.sock

फिर, मैंने अपाचे को फिर से शुरू किया और जाँच की php -i | grep pdo:

pdo_mysql.default_socket => /var/run/mysqld/mysqld.sock => /var/run/mysqld/mysqld.sock

उसने मेरे लिए इसे हल कर दिया।


यह मेरे लिए काम करने वाला फिक्स था, समस्या यह थी कि मैंने mysql के दो संस्करण स्थापित किए और एक को हटा दिया, 127.0.0.1 परिवर्तन ने काम नहीं किया या कॉन्फ़िगरेशन में जुर्राब जोड़कर, धन्यवाद! @dcarrith
लुइस

2
इससे मुझे अपनी समस्या का पता लगाने में मदद मिली - जो यह था कि मैं OSX बंडल्ड php का उपयोग कर रहा था, MAMP php बाइनरी का नहीं। तो सुनिश्चित करें कि आप php के सही संस्करण का उपयोग कर रहे हैं जो सही php.ini को इंगित करता है, आदि निश्चित करें "doh!" पल।
ड्रैगनफलीज

43

@Stuyam के उत्तर ने मेरे लिए "ऐसी कोई फ़ाइल या निर्देशिका" समस्या हल नहीं की

संक्षिप्त उत्तर: "होस्ट" को /app/config/database.php फ़ाइल में "लोकलहोस्ट" से "127.0.0.1" में बदलें।

लेकिन तब मेरे पास "कनेक्शन अस्वीकृत" त्रुटि थी। अगर किसी के पास एक ही मुद्दा था, तो इसके लिए मेरा समाधान एप्लिकेशन / config / local / database.php फ़ाइल को अपडेट करना था, इसलिए पोर्ट 8889 है:

'mysql' => array(
        'driver'    => 'mysql',
        'host'      => '127.0.0.1',
        'port'      => '8889',
        'database'  => 'databaseName',
        'username'  => 'root',
        'password'  => 'root',
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
    ),

4
मेरे मामले में, यह था, 'port' => '33060'लेकिन यह जवाब मुझे वहां मिल गया!
mopo922

25

यदि आप लारवेल होमस्टेड का उपयोग कर रहे हैं, तो सुनिश्चित करें कि आप सर्वर पर कमांड को बुला रहे हैं।

homestead ssh

तो बस सही निर्देशिका के लिए सीडी और वहाँ अपने आदेश आग।


2
यह काम किया, मैं अपने कंप्यूटर से पहले VM में ssh के बजाय कमांड चला रहा था और वहां कमांड चला रहा था।
cmac

मैं हमेशा इस कदम को भूल जाता हूं। हे। 1. source ~/.zshrc2. homestead up --provision3.homestead ssh
मार्सेल

1
vagrant sshमेरे मामले में
मार्कोस कर्वेलो


19

नम उपयोगकर्ता सक्षम विकल्प MYSQL के लिए नेटवर्क का उपयोग करने की अनुमति दें

यहां छवि विवरण दर्ज करें


18

नीचे उदाहरण की तरह database.php फ़ाइल में mysql.sock पाथ जोड़ें

'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock',

Eample

'mysql' => [
        'driver' => 'mysql',
        'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock',
        'host' => env('DB_HOST', 'localhost'),
        'port' => env('DB_PORT', '8889'),

18

मैंने .env फ़ाइल से DB_HOST=localhostइसे बदलने के बाद काम कियाDB_HOST=127.0.0.1


2
यह काम किया, आप सही हैं। क्या आपके पास कोई विचार है जो यह बताता है कि localhostकाम क्यों नहीं करता है?
फ्यूजन

1
@ फ्यूजन अगर आप एक कंटेनर के अंदर अपना ऐप चला रहे हैं तो यह 'लोकलहोस्ट' को कंटेनर के रूप में समझेगा, 127.0.0.1 इसे होस्ट के db
deathem King

मेरे पास भी इस तरह का एक मुद्दा था, कैश को साफ नहीं कर सकता था या कारीगर की सेवा नहीं चला सकता था
टॉम मावेंडा

17

ऐसा इसलिए है क्योंकि पीडीओ "लोकलहोस्ट" मेजबान को विशेष रूप से मानता है:

नोट: केवल यूनिक्स: जब होस्ट नाम "लोकलहोस्ट" पर सेट किया जाता है, तो सर्वर से कनेक्शन को डोमेन सॉकेट के माध्यम से बनाया जाता है। यदि PDO_MYSQL को libmysqlclient के विरुद्ध संकलित किया जाता है, तो सॉकेट फ़ाइल का स्थान libmysqlclient के स्थान पर संकलित है। यदि PDO_MYSQL को mysqlnd के खिलाफ संकलित किया जाता है, तो pdo_mysql.default_socket सेटिंग के माध्यम से डिफ़ॉल्ट सॉकेट सेट किया जा सकता है।

( http://php.net/manual/en/ref.pdo-mysql.connection.php से )

लोकलहोस्ट को 127.0.0.1 में बदलने से टीसीपी का उपयोग "बल" होगा।

नोट: mysqli_connect लोकलहोस्ट के साथ ठीक काम कर रहा है।


12

@Dcarrith से जवाब पर बिल्डिंग ...

कॉन्फिग फाइलों को संपादित करने के बजाय, मैंने उस स्थान पर एक उपनाम बनाया है जो PHP देख रहा है जो वास्तविक mysql.sock से जुड़ता है। ( स्रोत )

बस इन दो आदेशों को चलाएं (कोई पुनरारंभ आवश्यक नहीं):

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

11

चरण 1

अपने unix_socket का पथ खोजें, ऐसा करने के लिए बस दौड़ें netstat -ln | grep mysql

आपको कुछ इस तरह से मिलना चाहिए

unix  2      [ ACC ]     STREAM     LISTENING     17397    /var/run/mysqld/mysqld.sock

चरण 2

इसे लें और इसे अपने unix_socket param में जोड़ें

'mysql' => array(
            'driver'    => 'mysql',
            'host'      => '67.25.71.187',
            'database'  => 'dbname',
            'username'  => 'username',
            'password'  => '***',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'unix_socket'    => '/var/run/mysqld/mysqld.sock' <-----
            ),
        ),

आशा है ये मदद करेगा !!


8

मैं MAMP प्रो पर चल रहा हूं और इसी तरह की समस्या थी जब माइग्रेट करने की कोशिश कर रहा था (डीबी टेबल बनाएं)। इन उल्लेखित सुझावों में से कुछ के रूप में अच्छी तरह से करने की कोशिश की, लेकिन मेरे लिए ऐसा नहीं किया।

तो, बस (एक घंटे के गोग्लिंग के बाद), मैंने /config/database.php में दो चीजें जोड़ीं।

'port' => '1234',
'unix_socket' => '/path/to/my/socket/mysqld.sock'

अब ठीक काम करता है!


4

अपने पोर्ट को ध्यान से देखें। मेरे मामले में यह 8889 था और मैं 8888 का उपयोग कर रहा हूं। "DB_HOST" को "लोकलहोस्ट" से "127.0.0.1" में बदलें और इसके विपरीत


महान, धन्यवाद, मेरा बंदरगाह 3306 था लेकिन मेरा असली बंदरगाह 8889 है
डेविड 16

4

मुझे यह समस्या तब हुई जब मैं डॉकटर कंटेनरों का उपयोग करके अपना एप्लिकेशन चला रहा था।

समाधान को MySQL सर्विस कंटेनर का नाम दिया गया था जिसका उपयोग मैं docker_compose.ymlDB_HOST पर कर रहा था । मेरे मामले में, यह था db:

DB_HOST=db

आशा है ये मदद करेगा।


2

Laravel 5 के रूप में डेटाबेस उपयोगकर्ता नाम और पासवर्ड .env फ़ाइल में जाता है जो परियोजना निर्देशिका में मौजूद है, जैसे

DB_HOST=127.0.0.1
DB_DATABASE=db1
DB_USERNAME=user1
DB_PASSWORD=pass1

जैसा कि आप देख सकते हैं कि ये पर्यावरण चर 'फोर्ज' के तार से आगे निकल रहे हैं, इसलिए इन्हें बदलने से कोई प्रभाव नहीं पड़ता है:

    'mysql' => [
        'driver'    => 'mysql',
        'host'      => env('DB_HOST', 'localhost'),
        'database'  => env('DB_DATABASE', 'forge'),
        'username'  => env('DB_USERNAME', 'forge'),
        'password'  => env('DB_PASSWORD', ''),
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        'strict'    => false,
    ],

अधिक जानकारी यहाँ है https://mattstauffer.co/blog/laravel-5.0-environment-detection-and-environment-variables


2

जब मैं Elixir / Gulp में PHPUnit चला रहा था, और अपने वैग्रेंट एनवायरमेंट के रूप में होमस्टीड आया, तो मैं इस समस्या में भाग गया।

मेरे मामले में मैं से .env फ़ाइल संपादित DB_HOST=localhostकरने के लिए DB_HOST=192.168.10.10जहां 192.168.10.10मेरी Vagrant / Homestead होस्ट के IP है।


2

लोकलहोस्ट से जुड़ने का प्रयास:

SQLSTATE[HY000] [2002] No such file or directory

127.0.0.1 से कनेक्ट करने का प्रयास करें:

SQLSTATE[HY000] [2002] Connection refused

ठीक है, बस /opt/local/etc/mysqlxx/my.cnfप्राप्त करने के लिए my.cnf (OS X 10.5: पर ) से निम्नलिखित सेटिंग टिप्पणी / निकालें :

[mysqld]
# skip-networking

बेशक, MySQL सर्वर को बंद करो और शुरू करो।


2

मुझे अपनी Drupal वेबसाइट तक पहुँचने में इसी तरह की समस्याएँ थीं। मैंने इसे कमांड लाइन खोलकर, और MySQL सर्वर या सेवा को फिर से शुरू करके तय किया:

service mysqld restart

यह काम करना चाहिए। यदि यह नहीं है, तो अपने स्थानीय वेबसर्वर को पुनः आरंभ करें:

service httpd restart

इतना काफी होना चाहिए। आशा है कि यह अन्य वातावरणों के लिए भी काम करेगा। ध्यान दें कि इन आदेशों को आम तौर पर सुपरयूसर विशेषाधिकारों की आवश्यकता होती है।


1

यदि आप लारवेल होमस्टेड का उपयोग कर रहे हैं, तो यहां सेटिंग्स है

(वैग्रंट-वर्चुअल मशीन शामिल करें)

.bash प्रोफ़ाइल

alias vm="ssh vagrant@127.0.0.1 -p 2222"

database.php

    'mysql' => [
        'driver'    => 'mysql',
        'host'      => env('DB_HOST', '127.0.0.1'),
        'database'  => env('DB_DATABASE', 'homestead'),
        'username'  => env('DB_USERNAME', 'homestead'),
        'password'  => env('DB_PASSWORD', 'secret'),
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        'strict'    => false,
    ],

टर्मिनल

vm

vagrant@homestead:~/Code/projectFolder  php artisan migrate:install

1

यदि किसी को अभी भी उत्तर की तलाश है, तो बस अपनी .env फ़ाइल देखें। किसी कारण से लार्वा एक .env.example फ़ाइल बनाते हैं, इसलिए यह सभी उत्तर मेरे लिए काम नहीं करते हैं। मैंने अपना मुद्दा renamming .env.example to .env तय किया


इस सवाल का कोई एक सही जवाब नहीं है क्योंकि इसमें कई तरह की त्रुटियां हैं। यह उनमें से एक है, जैसा कि रिमोट सर्वर पर .env फ़ाइल को कॉपी करने में विफल हो रहा है। तो यह सर्वर पर .env फ़ाइल की जाँच करने के लायक है जहाँ आप यह सुनिश्चित करने के लिए क्वेरी चलाने की कोशिश कर रहे हैं कि यह दोनों मौजूद है और इसमें कनेक्शन बनाने के लिए आवश्यक जानकारी है।
पेट्रोकोल

1

यह मेरे साथ हुआ क्योंकि MySQL नहीं चल रहा था। MySQL शुरू करने में विफल रहा क्योंकि मेरे पास एक लापता /usr/local/etc/my.cnf.d/निर्देशिका थी।

यह /usr/local/etc/my.cnfएक ग्लोब शामिल ( include /usr/local/etc/my.cnf.d/*.cnf) के रूप में मेरी कॉन्फिग फ़ाइल द्वारा आवश्यक किया जा रहा था ।

चल रहा है mkdir /usr/local/etc/my.cnf.d, और फिर MySQL शुरू करके इस मुद्दे को ठीक कर दिया।


1

मेरे मामले में, मैं अपने मैक टर्मिनल पर php कारीगर माइग्रेट चला रहा था, जब मुझे योनि में ssh और वहां से चलाने की आवश्यकता थी। उम्मीद है कि किसी को सिरदर्द में मदद करता है।


1

मुझे dbdocker_compose.yml फ़ाइल में डॉकर और MySQL सेवा नाम का उपयोग करने में एक ही समस्या थी :

मैंने .envफ़ाइल में निम्नलिखित जोड़ा :

DB_HOST=db

आपको यह भी आश्वासन देना चाहिए कि आपका मेजबान php ऐप से खोज करने योग्य है।

ऐसा इसलिए था क्योंकि PHP ने यह पता लगाने के लिए कि कौन से होस्ट को कनेक्ट करने के लिए उपयोग नहीं किया है।


0

VirtualMachine का उपयोग करते समय सुनिश्चित करें कि आप उस मशीन में ssh करते हैं और अपने ऐप फ़ोल्डर में नेविगेट करते हैं और php कारीगर माइग्रेट कमांड को वहां से बुलाते हैं।


0

मामले में, मैं बस इस्तेमाल किया जाएगा

vagrant up

के बजाय

homestead up

होमस्टेड का उपयोग करके मेरे फोर्ज लार्वा सेटअप के लिए। मैं यह मान रहा हूं कि साइट की सेवा हो रही है, लेकिन MySQL सर्वर कभी बूट नहीं किया गया था। जब मैंने अपने योनि बॉक्स को लॉन्च करने के लिए बाद की कमांड का उपयोग किया, तो त्रुटि दूर हो गई।


0

ये सभी जवाब भारी लग रहे हैं ...

मैंने अभी एक .envफ़ाइल बनाई है ; मेरी bootstrap/app.phpफ़ाइल को संपादित किया , और निम्नलिखित पंक्ति को अनियोजित किया ...

Dotenv::load(__DIR__.'/../');

आशा है कि यह किसी की मदद करता है


0

किसी के लिए लार्वा पर नहीं बल्कि एक ताजा डीबी कनेक्शन बनाने की कोशिश कर रहा है, लेकिन टर्मिनल से पीडीओ चलाने के लिए जवाब मांगने के लिए यहां टकरा रहा है। इससे आपको मदद मिलेगी। और आप इसे अपने लिए सबसे अच्छा काम कर सकते हैं।

<?php

class db
{
   private $DBHOST = 'localhost'; // you don't need 127.0.0.1
   private $DRIVER = 'mysql';
   private $PORT   = '8888'; // database port. 8888 is mine
   private $DB     = 'example-db';
   private $PASS   = 'example-pass';
   private $USER   = 'root';
   private $SOCKS  = ''; // can fill this or leave blank.


   // - connect (dummy connection)
   private function con()
   {
       if ($this->SOCKS == '')
       {
           // run shell command to get 
           $socks = shell_exec('netstat -ln | grep mysql');
           $socks = trim(substr($socks, strpos($socks, '/')));

           $this->SOCKS = strlen($socks) > 0 ? ';unix_socket='.$socks : '';
       }
       else
       {
          $this->SOCKS = ';unix_socket='.$this->SOCKS;
       }

       $dsn = $this->DRIVER.':host='.$this->DBHOST.';dbname='.$this->DB;

       // add socks
       $dsn .= $this->SOCKS;

       // add port
       $dsn .= (strlen($this->PORT) > 0) ? ';port='.$this->PORT : '';

       // extablish connection
       $con = new PDO($dsn, $user, $pass);

       // return PDO instance.
       return $con;
   }
   // - ends here

   // now you can call $this->con() within class to use connection 
   // would run fine on any terminal

} 

आशा है ये मदद करेगा!


0

मेरे मामले में मुझे बूटस्ट्रैप / कैश फ़ोल्डर को निकालना था और इसे फिर से आज़माना था।

मेरा cenario सर्वर माइग्रेशन के बाद था।

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