与java的MySQL连接错误

时间:2013-11-24 13:43:22

标签: java eclipse database-connection mysql-workbench

当我尝试连接到我的数据库时,Eclipse给了我很多错误。这是代码:

public static void main(String[] args) throws Exception{
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(
    "jdbc:mysql://127.0.0.1:3306/Turniir", "root", "root");
    System.out.println("Connected to MySQL"); 
con.close(); 
}

首先它说未知数据库'turniir'。 在mysql workbench中,有一个连接127.0.0.1:3306,它使用一个模式,在工作台中我可以插入行,我得到一个连接。用户和pw应该是root用户,至少我用它们登录。但是有30个错误......

同样在eclipse中,我在引用的库下有mysql连接器5.1.27,当我检查我的代码时,eclipse没有显示任何红色标记,只有当我运行时。

我认为问题出在jdbc:mysql://127.0.0.1:3306 / Turniir“,”root“,”root“这段代码,要么我以某种方式更改了服务器,要么我不知道密码或用户名是服务器或我不知道正确的服务器IP /名称...

数据库:http://www.upload.ee/image/3724759/mysqldb.png

连接东西:http://www.upload.ee/image/3724938/cra0.png

这些是错误:

Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:          Unknown database 'turniir'
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.Util.getInstance(Util.java:386)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1054)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4237)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4169)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:928)
at    com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1750)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1290)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2493)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2526)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2311)
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(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
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:347)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at Program.main(Program.java:12)

2 个答案:

答案 0 :(得分:0)

您说Turiir不是数据库名称。这就是你收到错误的原因

"jdbc:mysql://127.0.0.1:3306/Turniir", "root", "root");

   // This need to be database ^^^^

                      // this username ^^^^

                              // this password  ^^^^

如果你运行mysql并输入show databases并且turniir没有显示,那么它不是数据库。用有效的数据库替换上面的代码。

答案 1 :(得分:0)

可能是'turniir'区分大小写,错误消息显示'Turniir'