java जेडीबीसी कनेक्शन MySQL(जावा, इंटेलीज, और लिनक्स के प्रयोग से) नहीं कर सकता




linux jdbc (4)

मेरे पास एक ही लक्षण था लेकिन मेरे लिए समाधान बाँध-पता को 0.0.0.0 में /etc/mysql/my.cnf में परिवर्तित करना था

(बस इस सवाल का जवाब देने वाले अन्य लोगों के लिए यह पोस्ट करना)

नीचे दिए गए कोड का उपयोग करते हुए मुझे एक डेटाबेस कनेक्शन प्राप्त करने की कोशिश कर रहा है I

  try {
        Class.forName("com.mysql.jdbc.Driver");
        Properties p = new Properties();
        p.put("user", user_name);
        p.put("password", password);
        connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1/jsp_test", p);
    } catch (SQLException ex) {
        // handle any errors
        ex.printStackTrace();
        System.out.println("SQLException: " + ex.getMessage());
        System.out.println("SQLState: " + ex.getSQLState());
        System.out.println("VendorError: " + ex.getErrorCode());
        return false;
    } catch (ClassNotFoundException e) {
        e.printStackTrace();  
    }

आउटपुट होने वाला त्रुटि संदेश है:

/ usr / lib / jvm / java-6-openjdk / bin / java -Didea.launcher.port = 7532 -डिडाए.लांचर.बीपीथ = / usr / bin / idea / bin -Defile.encoding = UTF-8 - क्लासपाथ / यूएसआर / लिब / jvm / java-6-openjdk/jre/lib/jce.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/about.jar:/usr/lib/jvm/ जावा-6-openjdk / JRE / lib / resources.jar: /usr/lib/jvm/java-6-openjdk/jre/lib/management-agent.jar: / usr / lib / JVM / जावा-6-openjdk / JRE / lib / jsse.jar: /usr/lib/jvm/java-6-openjdk/jre/lib/charsets.jar: /usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar: /usr/lib/jvm/java-6-openjdk/jre/lib/ext/localedata.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/ext/sunjce_provider.jar:/usr/lib /jvm/java-6-openjdk/jre/lib/ext/sunpkcs11.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/ext/dnsns.jar:/home/bedtimes/Java प्रोजेक्ट / db_demo / out / production / db_demo: /opt/java/jre/lib/ext/mysql-connector-java-5.1.10-bin.jar: /usr/bin/idea/lib/idea_rt.jar com.intellij.rt । execution.application.AppMain मुख्य com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: संचार लिंक विफलता

अंतिम पैकेट सर्वर पर सफलतापूर्वक भेजा गया था 0 मिलीसेकंड पहले। ड्राइवर को सर्वर से कोई भी पैकेट नहीं मिला है। sun.reflect पर। NativeConstructorAccessorImpl.newInstance0 (मूल विधि) पर sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:57) पर sun.reflect.DeligatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java45) java.lang.reflect.Constructor पर com.mysql.jdbc.Util.handleNewInstance (Util.java:406) पर com.mysql.jdbc.SQLError.createCommunicationsException (SQLError.java:1074) पर com.mysql.jdbc पर new.Instance (कन्स्ट्रक्टर.जावा / 32)। Com.mysql.jdbc.JDBC4 कनेक्शन पर com.mysql.jdbc.ConnectionImpl। (ConnectionImpl.java:781) पर ConnectionImpl.createNewIO (ConnectionImpl.java:2214)। Sun.reflect.NativeConstructorAccessorImpl.newInstance0 पर (JDBC4Connection.java:46)। (मूल विधि) पर sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:57) पर sun.reflect.DeligatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java45) java.lang.reflect.Constructor.newInstance पर (कंस्ट्रक्टर.जावावर 2) com.mysql.jdbc.Util.handleNewInstance (Util.java:406) पर com.mysql.jdbc.ConnectionImpl.getInstance पर (कनेक्शन Impl.java352) com.mysql.jdbc.NonRegisteringDriver.connect पर (NonRegisteringDriver.java) : 284) java.sql.DriverManager.getConnection पर (DriverManager.java:620) java.sql.DriverManager.getConnection पर (DriverManager.java:169) database.Database.connect पर (database.java:80) Main.main पर (Main.java.13) पर sun.reflect.NativeMethodAccessorImpl.invoke0 (मूल विधि) पर sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57) पर sun.reflect.DellegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) पर java.lang.reflect.Method.invoke (method.java:616) com.intellij.rt.execution.application.AppMain.main पर (AppMain.java:110) द्वारा उत्पन्न: com.mysql.jdbc.exceptions.jdbc4। संचार अपवाद: संचार लिंक विफलता

अंतिम पैकेट सर्वर पर सफलतापूर्वक भेजा गया था 0 मिलीसेकंड पहले। ड्राइवर को सर्वर से कोई भी पैकेट नहीं मिला है। sun.reflect पर। NativeConstructorAccessorImpl.newInstance0 (मूल विधि) पर sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:57) पर sun.reflect.DeligatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java45) java.lang.reflect.Constructor पर com.mysql.jdbc.Util.handleNewInstance (Util.java:406) पर com.mysql.jdbc.SQLError.createCommunicationsException (SQLError.java:1074) पर com.mysql.jdbc पर new.Instance (कन्स्ट्रक्टर.जावा / 32)। मैक्सकिलिओ (com.mysql.jdbc.ConnectionImpl.createNewIO) पर ConnectionImpl.createNewIO (ConnectionImpl.java:2137) पर ... 18 और इसके कारण: java.net.ConnectException: कनेक्शन ने java.net से इनकार कर दिया। PlainSocketImpl.socketConnect (मूल विधि) पर java.net.AbstractPlainSocketImpl.doConnect (AbstractPlainSocketImpl.java:310) java.net.AbstractPlaceSocketImpl.connectToAddress पर (AbstractPlainSocketImpl.java:176) java.net.AbstractPlainSocketImpl.connect पर (AbstractPlainSocketImpl.java:163) पर java.net.SocksSocketImpl.connect (सोक java.net.Socket.ocket (सॉकेट.जावाओ 389) पर java.net.Socket.connect (Socket.java:492) पर java.net.Socket.connect (सॉकेट.जावा 004) पर sSocketImpl.java:384) com.mysql.jdbc.MysqlIO पर com.mysql.jdbc.StandardSocketFactory.connect (StandardSocketFactory.java:253) पर java.net.Socket पर (सॉकेट.जेवाएक्स 3232)। (MysqlIO.java chines92) ... 19 और अधिक एसक्लसेक्सशन: संचार लिंक विफलता

अंतिम पैकेट सर्वर पर सफलतापूर्वक भेजा गया था 0 मिलीसेकंड पहले। ड्राइवर को सर्वर से कोई भी पैकेट नहीं मिला है। SQLState: 08S01 विक्रेता त्रुटि: 0

निकास कोड 0 के साथ प्रक्रिया समाप्त हुई

मैंने सचमुच, यह त्रुटि संदेश का निवारण करने का कोई अंदाज़ा नहीं किया है। डेटाबेस मौजूद है उपयोगकर्ता नाम और पासवर्ड मौजूद है। मैंने वर्तमान में डेटाबेस में किसी टेबल को जोड़ा नहीं है लेकिन मुझे नहीं लगता कि यह समस्या हो सकती है, क्योंकि मैं केवल सभी के बाद कनेक्शन बना रहा हूं ...

जरूरत पड़ने पर मैं अतिरिक्त जानकारी प्रदान कर सकता हूं मुझे लगता है जैसे मैंने बहुत कोशिश की है क्या किसी और को यह पता चलता है कि यह कैसे और क्यों असफल है?

आपकी सहायताके लिए धन्यवाद! :)


Answer #1

आप इसके बजाय यह कोशिश कर सकते हैं:

connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/jsp_test","user_name","password");

Answer #2

आप निम्न में से एक कोशिश कर सकते हैं

"jdbc:mysql://localhost:3306/jsp_test","username","password"

या

"jdbc:mysql://'your machines ip (without quote)':3306/jsp_test","username","password"

या

"jdbc:mysql://127.0.0.1:3306/jsp_test","username","password"

एक कनेक्शन स्ट्रिंग के रूप में


Answer #3

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

टेलनेट 127.0.0.1 3306

और यह सुनिश्चित करता है कि यह जोड़ता है? आपने इस मशीन से या इस इंटरफ़ेस पते पर कनेक्शन सुनने के लिए अपनी mysql आवृत्ति को कॉन्फ़िगर नहीं किया हो। यदि कनेक्शन विफल रहता है, तो आपको अपनी mysql कॉन्फ़िग को संशोधित करने की आवश्यकता है, उदाहरण के लिए:

http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html