2010-12-20 17 views
5

का उपयोग कर यहाँ कैसे मैं कनेक्ट करने के लिए कोशिश कर रहा हूँ है:एक एक MySQL DB से कनेक्ट कर समस्या JDBC

try { 
    Class.forName("com.mysql.jdbc.Driver").newInstance(); 
    } catch (Exception e) { 
     throw new DbConnectionException(); 
    } 
    try { 
     connection = DriverManager.getConnection(url,username,password); 
    } catch (SQLException e) { 
     e.printStackTrace(); 
     throw new DbConnectionException(); 
    } 

मैं 100% यकीन है कि यूआरएल, उपयोगकर्ता नाम, पासवर्ड तार सही हैं। मैं पहले से ही एक बाहरी उपकरण (MySQL क्वेरी ब्राउज़र) का उपयोग कर सफलतापूर्वक कनेक्ट कर चुका हूं।

com.mysql.jdbc.CommunicationsException: संचार लिंक विफलता की वजह से अंतर्निहित अपवाद रहे हैं:

** नेस्ट अपवाद शुरू **

java.net यह त्रुटि मैं प्राप्त है .SocketException संदेश: java.net.ConnectException: कनेक्शन

से इनकार कर दिया ...

+1

MySQL सर्वर चल रहा है? क्या पोर्ट फ़ायरवॉल से अनब्लॉक किया गया है? –

+0

@ द एलिट: हां। सं। – snakile

+0

फ़ायरवॉल ने आपके MySQL पोर्ट को अवरुद्ध कर दिया? इसे अनब्लॉक करने का प्रयास करें। –

उत्तर

6

संभवतः url समस्या। यदि आपका कोड MySQL localhost पर इंगित कर रहा है, तो अपने यूआरएल पर localhost से 127.0.0.1 को बदलने का प्रयास करें।

उदा .:

jdbc:mysql://localhost:3306/MY_DB 

jdbc:mysql://127.0.0.1:3306/MY_DB 

को और देखें कि यह काम करता है।

+0

वास्तव में एक यूआरएल मुद्दा। बाहर निकलता है मेरे पास कोड का एक और टुकड़ा था जो किसी अन्य डीबी से कनेक्ट करने की कोशिश कर रहा था और इससे समस्या उत्पन्न हुई। कुछ गलत पर 100% सुनिश्चित होने के लिए खेद है। – snakile

+0

मुझे लगता है कि यह सब के बाद एक यूआरएल मुद्दा था .... – hvgotcodes

1

क्या आपने उसी मशीन से MySQL ब्राउज़र चलाया था जहां कोड चल रहा है? जो मैं प्राप्त कर रहा हूं वह है कि MySQL में अनुमतियां मेजबान-विशिष्ट हो सकती हैं, और इस पर निर्भर करती है कि आप उन्हें कैसे सेट अप करते हैं, आप उस मशीन से कनेक्ट नहीं कर पाएंगे जहां कोड चल रहा है।

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

+0

वही मशीन। पैरामीटर सही हैं। – snakile

+0

@snakile क्या आपने jzd के उत्तर को देखा? वह एक अच्छा विचार है। – hvgotcodes

1

प्रारूप की जांच आपके यूआरएल का यह "जेडीबीसी: mysql:" से शुरू होना चाहिए। सुनिश्चित करें कि आप ड्राइवर के लिए वर्तमान संस्करण का भी उपयोग कर रहे हैं।

+0

वास्तव में एक यूआरएल मुद्दा।बाहर निकलता है मेरे पास कोड का एक और टुकड़ा था जो किसी अन्य डीबी से कनेक्ट करने की कोशिश कर रहा था और इससे समस्या उत्पन्न हुई। कुछ गलत पर 100% सुनिश्चित होने के लिए खेद है। – snakile

0

जांचें कि आप mysql व्यवस्थापक उपकरण से डेटाबेस से कनेक्ट कर सकते हैं, जो यह पता लगाएगा कि आपका MySQL चल रहा है या नहीं कि पोर्ट खुला है।

0

मेरे मामले में समस्या यह थी कि मैं एमुलेटर से लोकहोस्ट से कनेक्शन का उपयोग कर रहा था।

आप एमुलेटर का उपयोग करते हैं स्थानीय होस्ट कनेक्शन स्ट्रिंग में localhost मूल्य का उपयोग नहीं करते, लेकिन इसके बजाय 10.0.2.2 का उपयोग करें:

jdbc:mysql://10.0.2.2:3306/MY_DB 

आशा इस मदद करता है।

संबंधित मुद्दे