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

जब सर्वर तक नहीं पहुंचा जा सकता है तो PHP का पीडीओ MySQL के लिए ATTR_TIMEOUT विकल्प को अनदेखा कर रहा है

बस डालें

ini_set("default_socket_timeout", 2);

आपके पीडीओ() कनेक्ट स्ट्रिंग से पहले।

(विंडोज़ पर परीक्षण किया गया, लिनक्स पर भी ठीक होना चाहिए।)

क्यों?

मैनुअल के माध्यम से इसका पीछा करना:

mysqlnd ड्राइवर अंतर्निहित कनेक्शन के लिए सॉकेट का उपयोग करता है, और टाइमआउट सेट करने के लिए आपको सॉकेट (स्ट्रीम) टाइमआउट फ़ंक्शंस का उपयोग करने की आवश्यकता होती है। (संदर्भ:http://php.net/manual/en/mysqlnd.notes। php )

यदि आप अधिक नियंत्रण चाहते हैं, तो आप अधिक विशेष रूप से वास्तविक सॉकेट को नियंत्रित करने में सक्षम हो सकते हैं:मैंने इसका परीक्षण नहीं किया है क्योंकि यह केवल यूनिक्स है। सॉकेट mysqlnd उपयोग सेट करने के लिए, आप आईएनआई सेटिंग्स का उपयोग करके सॉकेट निर्दिष्ट कर सकते हैं (संदर्भ:http://php.net/manual/en/ref.pdo-mysql.connection.php )

देखें http://php। net/manual/hi/ref.pdo-mysql.php#ini.pdo-mysql.default-socket उस सेटिंग के बारे में

फिर आप http://php का उपयोग करके टाइमआउट सेट करने में सक्षम हो सकते हैं .net/manual/hi/function.stream-set-timeout.php

लेकिन डिफ़ॉल्ट सेट करना और फिर काम पूरा करने के बाद रीसेट करना आसान हो सकता है...



  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. त्रुटि:तालिका xxx के लिए तालिका स्थान मौजूद है। कृपया आयात करने से पहले टेबल स्पेस को त्यागें

  4. संग्रहीत कार्यविधि बनाते समय `definer` आवश्यक है?

  5. MySQLdb के माध्यम से फ़ंक्शन बनाएं