我已经查看了所有内容并尝试了我能找到的所有内容,所以我正在发布一个帖子,以防我的问题很奇怪。
MySQL 工作台可以很好地使用服务器进行查询和更新。通知程序显示服务器正在运行。
我尝试使用 Eclipse Juno 和 Kepler 并得到 eclipse SQL State: 08S01 error 0。零数据包发送成功,服务器没有响应。我重新下载了 Connector/J 以确保下载中断没有错误。没有改善。
我更改为 Netbeans 以确保它不仅仅是 Eclipse 和我系统上的某些东西。没有成功发送数据包,也没有收到任何内容。
我进行了测试以确保服务器已打开,并且 telnet 在命令提示符中使用了正确的端口,并且正如预期的那样,它会要求输入密码。我使用 Wire Shark 来查看数据包数据的样子。看起来服务器正在侦听正确的端口,而 MySQL 工作台正在使用正确的端口。
我不知道出了什么问题。我什至更新到 Windows 7 以确保这不是 Vista 的驱动程序身份验证问题。
我在 NetBeans 中使用了这段代码:
import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;
public class MySQLTest {
public static void main(String[] args)
{
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
System.out.println("1");
Connection con = DriverManager.getConnection("jdbc:mysql://127.0.0.0:3306/", "root", "wonderwoman");
System.out.println("2");
con.close();
System.out.println("We made it!");
} catch (SQLException ex) {
Logger.getLogger(MySQLTest.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(MySQLTest.class.getName()).log(Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
Logger.getLogger(MySQLTest.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(MySQLTest.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
最终收到了这个:
2013 年 10 月 22 日晚上 8:59:20 rad.MySQLTest main 严重:空 com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链接故障
最后一个成功发送到服务器的数据包是 0 毫秒前。驱动程序没有收到来自服务器的任何数据包。
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:526)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1121)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:357)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2482)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2519)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2304)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:834)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
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:526)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:416)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:346)
at java.sql.DriverManager.getConnection(DriverManager.java:571)
at java.sql.DriverManager.getConnection(DriverManager.java:215)
at rad.MySQLTest.main(MySQLTest.java:21)
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at java.net.Socket.connect(Socket.java:528)
at java.net.Socket.<init>(Socket.java:425)
at java.net.Socket.<init>(Socket.java:241)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:259)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:307)
... 15 more
我还应该尝试什么?看起来它正在到达服务器,而不是一切都在反弹。我已经关闭了我的防火墙,我没有使用代理,有点把我的头发拉在这里。