java - com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications link failure -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 23 उत्तर

मेरा प्रोग्राम जो एक से कनेक्ट करता है MySQL डाटाबेस ठीक काम कर रहा था फिर, कनेक्शन सेट अप करने के लिए किसी भी कोड को बदलने के बिना, मुझे यह अपवाद मिलता है:

  com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: संचार लिंक विफलता आखिरी पैकेट को सफलतापूर्वक भेजा गया सर्वर 0 मिलीसेकंड पहले था। ड्राइवर को सर्वर से कोई भी पैकेट नहीं मिला है।  

क्या हुआ?

कनेक्शन प्राप्त करने के लिए उपयोग किया गया कोड:

  निजी स्थिर कनेक्शन getDBConnection () SQLException फेंकता है, InstantiationException, IllegalAccessException, ClassNotFoundException {स्ट्रिंग उपयोगकर्ता नाम = "उपयोगकर्ता"; स्ट्रिंग पासवर्ड = "पास"; स्ट्रिंग url = "jdbc: mysql: //www.domain.com: 3306 / dbName? कनेक्टटैमआउट = 3000"; Class.forName ( "com.mysql.jdbc.Driver"); कनेक्शन conn = DriverManager.getConnection (यूआरएल, यूज़रनेम, पासवर्ड); वापसी कनन; }  

यह एक लिपटे अपवाद है और वास्तव में दिलचस्प नहीं है यह मूलभूत कारण के बारे में हमें बताए गए अपवाद के मूल कारण है कृपया स्टैक्सट्र्रेस में थोड़ा आगे देखें। मौका बड़ा है कि आपको SQLException का सामना करना होगा: कनेक्शन से इनकार कर दिया गया या SQLException: कनेक्शन का समय समाप्त हो गया ।

यदि यह आपके मामले में सच है साथ ही, सभी संभव कारण हैं:

  1. जेडीबीसी यूआरएल में आईपी पता या होस्टनाम गलत है।
  2. JDBC यूआरएल में होस्ट नाम स्थानीय DNS सर्वर द्वारा मान्यता प्राप्त नहीं है। < / Li>
  3. पोर्ट नंबर गुम या गलत है JDBC यूआरएल में।
  4. डीबी सर्वर डाउन है।
  5. डीबी सर्वर टीसीपी / आईपी कनेक्शन स्वीकार नहीं करता है।
  6. जावा और डीबी के बीच कुछ कनेक्शन कनेक्शन अवरुद्ध कर रहा है, उदा एक फ़ायरवॉल या प्रॉक्सी।

एक या दो को हल करने के लिए, निम्न सलाहों का पालन करें:

  1. उन्हें ping ।
  2. DNS को रीफ्रेश करें या इसके बजाय JDBC URL में आईपी पते का उपयोग करें।
  3. इसे MySQL DB के my.cnf पर आधारित सत्यापित करें।
  4. इसे प्रारंभ करें।
  5. अगर mysqld - skip-networking विकल्प के बिना शुरू किया गया है, तो सत्यापित करें।
  6. फ़ायरवॉल और / या फ़ायरवॉल / प्रॉक्सी को कॉन्फ़िगर करें पोर्ट की अनुमति / अग्रेषित करने के लिए।

वैसे (और वास्तविक समस्या से असंबंधित), आपको जरूरी नहीं कि हर मिलन कनेक्शन () कॉल करें स्टार्टअप के दौरान केवल एक बार ही पर्याप्त है।


Comments

Popular posts from this blog

asp.net - Change the driver in the connection string to a data source in VB.Net -

Getting started consuming web services in a Ruby on Rails 3 application -

objective c - iPhone and it's wireless area -