Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

mysqli::mysqli():(HY000/2002):सॉकेट 'MySQL' के माध्यम से स्थानीय MySQL सर्वर से कनेक्ट नहीं हो सकता (2)

जब आप केवल "लोकलहोस्ट" का उपयोग करते हैं तो MySQL क्लाइंट लाइब्रेरी टीसीपी/आईपी कनेक्शन के बजाय कनेक्शन के लिए यूनिक्स डोमेन सॉकेट का उपयोग करने का प्रयास करती है। त्रुटि आपको बता रही है कि सॉकेट, जिसे MySQL . कहा जाता है , कनेक्शन बनाने के लिए इस्तेमाल नहीं किया जा सकता, शायद इसलिए कि यह मौजूद नहीं है (त्रुटि संख्या 2)।

MySQL Documentation से :

<ब्लॉकक्वॉट>

यूनिक्स पर, MySQL प्रोग्राम होस्ट नाम लोकलहोस्ट का विशेष रूप से इलाज करते हैं, जो कि अन्य नेटवर्क-आधारित प्रोग्रामों की तुलना में आपकी अपेक्षा से अलग होने की संभावना है। लोकलहोस्ट से कनेक्शन के लिए, MySQL प्रोग्राम यूनिक्स सॉकेट फ़ाइल का उपयोग करके स्थानीय सर्वर से कनेक्ट करने का प्रयास करता है। यह तब भी होता है जब पोर्टनंबर निर्दिष्ट करने के लिए --port या -P विकल्प दिया जाता है। यह सुनिश्चित करने के लिए कि क्लाइंट स्थानीय सर्वर से TCP/IP कनेक्शन बनाता है, --host या -h का उपयोग होस्ट नाम मान 127.0.0.1, या IP पता या स्थानीय सर्वर का नाम निर्दिष्ट करने के लिए करें। आप --protocol=TCP विकल्प का उपयोग करके, लोकलहोस्ट के लिए भी, कनेक्शन प्रोटोकॉल को स्पष्ट रूप से निर्दिष्ट कर सकते हैं।

इस समस्या को हल करने के कुछ तरीके हैं।

  1. आप यूनिक्स सॉकेट के बजाय केवल टीसीपी/आईपी का उपयोग कर सकते हैं। आप 127.0.0.1 . का उपयोग करके ऐसा करेंगे localhost के बजाय जब आप कनेक्ट करते हैं। हालांकि, यूनिक्स सॉकेट अधिक तेज़ और उपयोग में सुरक्षित हो सकता है।
  2. आप सॉकेट को में बदल सकते हैं php.ini :MySQL कॉन्फ़िगरेशन फ़ाइल खोलें my.cnf यह पता लगाने के लिए कि MySQL सॉकेट कहाँ बनाता है, और PHP का mysqli.default_socket . सेट करें उस रास्ते को। मेरे सिस्टम पर यह है /var/run/mysqld/mysqld.sock
  3. कनेक्शन खोलते समय सॉकेट को सीधे PHP स्क्रिप्ट में कॉन्फ़िगर करें। उदाहरण के लिए:

    $db = new MySQLi('localhost', 'kamil', '***', '', 0, 
                                  '/var/run/mysqld/mysqld.sock')
    


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कमांड लाइन से MySQL डेटाबेस, उपयोगकर्ता और तालिकाओं का प्रबंधन कैसे करें

  2. मैं MySQL में पिवट टेबल आउटपुट कैसे वापस कर सकता हूं?

  3. कोडनिर्देशक के सक्रिय रिकॉर्ड पैटर्न के साथ यूनियन क्वेरी

  4. DROP डेटाबेस अनुमतियों के बिना कमांड-लाइन से सभी MySQL तालिकाओं को कैसे निकालें?

  5. PostgreSQL GROUP BY MySQL से अलग है?