2010-01-20 15 views
5

(Java, intellij, ve Linux kullanarak) MySQL JDBC bağlantı yapılamıyor:Ben aşağıdaki kodu kullanarak bir veritabanı bağlantısı almaya çalışırken sorunlar yaşıyorum

/usr/lib/jvm/java-6-openjdk/bin/java -Didea.launcher.port=7532 -Didea.launcher.bin.path=/usr/bin/idea/bin -Dfile.encoding=UTF-8 -classpath /usr/lib/jvm/java-6-openjdk/jre/lib/jce.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/about.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/resources.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/management-agent.jar:/usr/lib/jvm/java-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 Projects/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 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. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:532) at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074) at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2214) at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:781) at com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:46) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:532) at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:352) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:284) at java.sql.DriverManager.getConnection(DriverManager.java:620) at java.sql.DriverManager.getConnection(DriverManager.java:169) at database.Database.connect(Database.java:80) at Main.main(Main.java:13) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:110) Caused by: 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. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:532) at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074) at com.mysql.jdbc.MysqlIO.(MysqlIO.java:343) at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2137) ... 18 more Caused by: java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:310) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:176) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:163) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:384) at java.net.Socket.connect(Socket.java:542) at java.net.Socket.connect(Socket.java:492) at java.net.Socket.(Socket.java:389) at java.net.Socket.(Socket.java:232) at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:253) at com.mysql.jdbc.MysqlIO.(MysqlIO.java:292) ... 19 more SQLException: 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. SQLState: 08S01 VendorError: 0

Process finished with exit code 0

Bu hata iletisinde nasıl sorun giderileceğini bilmiyorum. Veritabanı var. Kullanıcı adı ve şifre var. Şu anda veritabanına herhangi bir tablo eklemedim ama sorun olabilir sanmıyorum, çünkü ben sadece bir bağlantı yapıyorum çünkü ...

Gerekirse ek bilgi sağlayabilirim. Çok denedim gibi hissediyorum. Nasıl ve neden başarısız olduğuna dair daha fazla bilgi edinmenin herhangi bir yolu var mı?

Yardımlarınız için teşekkürler! :)

+0

Doğrudan buna bağlanabilir misiniz (mysql client kullanarak)? Geri dönüşün yalnızca yararlı biti “08S01” ve mysql belgelerine ilişkin bir şeyden bahseder (http://dev.mysql.com/doc/refman/5.0/en/connector-j-usagenotes-troubleshooting.html#qandaitem- 20-3-5-3-1-3). – shylent

+0

URL'yi "jdbc: mysql: // localhost/jsp_test" kullanarak denediniz mi? Çoğunlukla sadece rastgele bir hata ayıklama tahmin. –

+0

Doğrudan mysql client ve 'jsp_test' kullanıcı adımı kullanarak bağlanabiliyorum. 127.0.0.1'i localhost'a değiştirirsem hala bağlanamıyorum. Bağlantı için teşekkürler, bir göz atacağım. Bir başkasının aynı şeyi kendi makineleriyle ve mysql-connector-java-5.1.10-bin.jar ile deneyip deneyemeyeceğini merak ediyorum. – olive

cevap

6

Bağlantı dizinizden bu veritabanı yerel makinede olmalıdır. Soketin bağlantılar için açık olduğundan emin olmak için bu komutu çalıştırmayı deneyebilir misiniz?

telnet 127.0.0.1 3306

ve bağlandığından emin olmak? Mysql örneğinizi bu makineden veya bu arabirim adresinden bağlantı dinleyecek şekilde yapılandırmamış olabilirsiniz. Bağlantı başarısız olursa, örneğin, mysql yapılandırma değiştirmeniz gerekir: http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html

+0

[bedtimes @ seb ~] $ telnet 127.0.0.1 3306 127.0.0.1. .. telnet: Uzak ana bilgisayara bağlanılamıyor: Bağlantı reddedildi ... Doğru olabilirsiniz gibi görünüyor!Gidip bu rehberi denerim ve sorunu giderirse size döneceğim. C: – olive

+1

Şu an alıyorum: [yatakgöbeği @ seb /] $ telnet localhost 3306 127.0.0.1 çalışıyor ... localhost'a bağlandı. Kaçış karakteri '^]' dir. Bağlantı yabancı ana makine tarafından kapatıldı. ... Bunun ne anlama geldiğini bilen var mı? – olive

+0

Son düzeltme, bu sayfada belirtilen host.allow değiştirerek oldu: http://bbs.archlinux.org/viewtopic.php?pid=346836#p346836 Toplam PITA. Teşekkürler! C: – olive

1

aynı belirtiler vardı ama benim için çözüm/etc 0.0.0.0 için yetkili-adresini değiştirmek için oldu/mysql/my.cnf

(Sadece bu soruya bir yanıt arayan diğerleri için bu gönderme)

+0

Bağlantı adres hattını tamamen kaldırıyorum ve aynı sorunu benim için çözdüm. – jgritty

1

Bunun yerine bu deneyebilirsiniz:

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

yo u bağlantı dizesi olarak aşağıdaki

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

veya

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

veya

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

birini deneyebilirsiniz.

İlgili konular