2011-08-26 12 views
6

का उपयोग कर ऑनलाइन MySQL डेटाबेस से कनेक्ट करने में समस्या। मैं अपने जावा ऐप में अपने ऑनलाइन डेटाबेस तक पहुंचने के लिए जेडीबीसी के साथ एक कनेक्शन स्थापित करने की कोशिश कर रहा हूं ताकि मैं टेबल को सम्मिलित और क्वेरी कर सकूं। (वास्तविक IP/उपयोगकर्ता/संपादित पास है, लेकिन वे सही हो के बाद से मैं एक PHP स्क्रिप्ट से समान किया है)जावा - जेडीबीसी

String url = "jdbc:mysql://984.168.199.70/my_db_name"; 
    String user = "my_username"; 
    String pass = "my_password"; 

Class.forName ("com.mysql.jdbc.Driver").newInstance(); 
    Connection conn = (Connection) DriverManager.getConnection(url, user, pass); 
    stmt = (Statement) conn.createStatement(); 

लेकिन यह काम नहीं करता, मैं: यहाँ मैं वर्तमान में क्या कोशिश कर रहा हूँ है त्रुटि:

Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. 

और त्रुटि लॉग उसके बाद काफी लंबा है।

तो बस यह इंगित करने के लिए: मैंने PHP स्क्रिप्ट का उपयोग करने से पहले इस सर्वर से कनेक्ट किया है, और मैंने अपने स्थानीयहोस्ट MySQL डेटाबेस से कनेक्ट करने और उससे संपर्क करने के लिए जेडीबीसी का उपयोग किया है।

किसी भी मदद के लिए धन्यवाद।

+0

MySQL के लिए खोला गया कोई विशेष पोर्ट, या यह डिफ़ॉल्ट है? – sgibly

+0

इसके अलावा, http://stackoverflow.com/questions/2102912/cant-make-jdbc-connection-to-mysql-using-java-intellij-and-linux – sgibly

+1

कंक्रीट समस्या के रूप में देखें, http: // stackoverflow.com/questions/2983248/jdbc-with-mysql/2985169#2985169 आपके द्वारा पोस्ट किए गए कोड के अनुसार, उन अनावश्यक जानवरों ने मुझे लगता है कि आपने वास्तव में 'कनेक्शन' और 'स्टेटमेंट' के लिए MySQL के ठोस क्रियान्वयन वर्ग आयात किए हैं। जबकि आपकी समस्या का जरूरी नहीं है, यह एक * बुरा अभ्यास * है। हमेशा 'java.sql। *' इंटरफेस के खिलाफ घोषित करें! यदि आपने कभी ड्राइवर को अपग्रेड किया है या डीबी स्विच किया है, तो आपका जेडीबीसी कोड अन्यथा टूट जाएगा और एक पूर्ण पुनर्लेख/पुनर्निर्माण की आवश्यकता होगी। – BalusC

उत्तर

2

मुझे यह समस्या भी मिली है और यह हमेशा (मेरे मामले में) गलत jdbc url पर नीचे आ गया है, उदा। गायब/गलत पोर्ट नंबर (मुझे पता है कि आपका नमूना कोड संपादित किया गया है लेकिन यह किसी भी पोर्ट को निर्दिष्ट नहीं करता है) या गलत आईपी पता, यह जांचने में असफल रहा कि MySQL चल रहा है और पोर्ट और आईपी पर कनेक्शन स्वीकार कर रहा है। अपने jdbc url

+0

मुझे यकीन नहीं है कि (यदि कोई है) पोर्ट मुझे निर्दिष्ट करना चाहिए ... मेरे पास सर्वर है जो गोडाडी पर होस्ट किया गया है .com, जो – JDS

+0

से निपटने में कभी आसान नहीं होता है, डिफ़ॉल्ट पोर्ट 3306 है, इसलिए आपका jdbc url jdbc जैसा होना चाहिए: mysql: //84.168.199.70: 3306/my_db_name तब बलससी ने कहा (कनेक्शन) को हटा दें। त्वरित Google ने यह दिखाया, http://help.godaddy.com/article/262 – eon

+0

धन्यवाद, लेकिन अभी भी कोई भाग्य मदद नहीं कर सकता है। कष्टप्रद बात यह है कि एक ही आईपी/उपयोगकर्ता नाम/पासवर्ड के साथ एक मूल PHP स्क्रिप्ट पूरी तरह से काम करता है। क्या गोडाडी जावा को एक्सेस करने या कुछ करने की इजाजत नहीं दे रहा है? – JDS

1

में अपने आईपी पते के विरुद्ध अपने my.cnf में बाइंड-एड्रेस की जांच करें, क्योंकि मेरा कोड यहां ठीक था। समस्या मेरे गोडाडी सेटिंग्स के साथ थी।

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

अन्य लोगों के पास कोई इनपुट होने पर मैं अभी भी कुछ समय के लिए अनुत्तरित प्रश्न छोड़ दूंगा। ये विन्यास चीजें हमेशा मुझे मिलती हैं ...

+0

मैं बिल्कुल वही सामना कर रहा हूं। मैं इसके लिए 000webhost.com की मुफ्त सेवा का उपयोग कर रहा हूं। वही त्रुटि? किसी भी विचार डेटाबेस को "सीधे पहुंच की अनुमति" शूट करने या खोजने में परेशानी कैसे हो सकती है? –

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