我在尝试使用以下代码获取数据库连接时遇到问题:
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 -Didea.launcher.bin.path = / usr / bin / idea / bin -Dfile.encoding = UTF-8-类路径/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主要com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链接失败 成功发送到服务器的最后一个数据包是在0毫秒之前。驱动程序尚未收到来自服务器的任何数据包。在java.lang.java处sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57处)处sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native方法)在Java.lang。 .newInstance(Constructor.java:532)位于com.mysql.jdbc.Util.handleNewInstance(Util.java:406)位于com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)位于com.mysql.jdbc com.mysql.jdbc.JDBC4Connection上的ConnectionImpl.createNewIO(ConnectionImpl.java:2214)(com.mysql.jdbc.ConnectionImpl。(ConnectionImpl.java:781))(JDBC4Connection.java: 成功发送到服务器的最后一个数据包是在0毫秒之前。驱动程序尚未收到来自服务器的任何数据包。在java.lang.java处sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57处)处sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native方法)在Java.lang。 .newInstance(Constructor.java:532)位于com.mysql.jdbc.Util.handleNewInstance(Util.java:406)位于com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)位于com.mysql.jdbc com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2137)上的MysqlIO。(MysqlIO.java:343)… 18个其他原因:java.net.ConnectException:java拒绝连接。 成功发送到服务器的最后一个数据包是在0毫秒之前。驱动程序尚未收到来自服务器的任何数据包。SQLState:08S01 VendorError:0 流程结束,退出代码为0
/ usr / lib / jvm / java-6-openjdk / bin / java -Didea.launcher.port = 7532 -Didea.launcher.bin.path = / usr / bin / idea / bin -Dfile.encoding = UTF-8-类路径/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主要com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链接失败
成功发送到服务器的最后一个数据包是在0毫秒之前。驱动程序尚未收到来自服务器的任何数据包。在java.lang.java处sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57处)处sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native方法)在Java.lang。 .newInstance(Constructor.java:532)位于com.mysql.jdbc.Util.handleNewInstance(Util.java:406)位于com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)位于com.mysql.jdbc com.mysql.jdbc.JDBC4Connection上的ConnectionImpl.createNewIO(ConnectionImpl.java:2214)(com.mysql.jdbc.ConnectionImpl。(ConnectionImpl.java:781))(JDBC4Connection.java:
成功发送到服务器的最后一个数据包是在0毫秒之前。驱动程序尚未收到来自服务器的任何数据包。在java.lang.java处sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57处)处sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native方法)在Java.lang。 .newInstance(Constructor.java:532)位于com.mysql.jdbc.Util.handleNewInstance(Util.java:406)位于com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)位于com.mysql.jdbc com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2137)上的MysqlIO。(MysqlIO.java:343)… 18个其他原因:java.net.ConnectException:java拒绝连接。
成功发送到服务器的最后一个数据包是在0毫秒之前。驱动程序尚未收到来自服务器的任何数据包。SQLState:08S01 VendorError:0
流程结束,退出代码为0
从字面上看,我不知道如何解决此错误消息。该数据库存在。用户名和密码存在。我目前尚未向数据库中添加任何表,但我认为这可能不是问题,因为我毕竟只是建立连接…
如果需要,我可以提供更多信息。我觉得我已经尝试了很多。是否有人知道如何获取有关如何以及为什么失败的更多信息?
谢谢你的帮助!:)
从您的连接字符串中,该数据库应位于本地计算机上。您可以尝试运行此命令以确保套接字已打开以进行连接吗?
远程登录127.0.0.1 3306
并确保它连接?您可能尚未将mysql实例配置为侦听来自此计算机或此接口地址的连接。如果连接失败,则需要修改mysql配置,例如:
http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql- database-server.html