2013-04-05 73 views
3

我正在使用JDBC,并且新增了它。但我不断收到此运行时异常:jdbc中的未知数据库

connecting to psysical database... 
    com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'kholofelodb' 
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:525) 
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:1052) 
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3609) 
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3541) 
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:943) 
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:4113) 
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1308) 
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2336) 
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2369) 
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2153) 
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:792) 
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:525) 
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) 
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:381) 
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305) 
at java.sql.DriverManager.getConnection(DriverManager.java:579) 
at java.sql.DriverManager.getConnection(DriverManager.java:221) 
at com.psybergate.database.SimbleCode.main(SimbleCode.java:22) 

这里是给代码

try { 
      String connectionURL =  "jdbc:mysql://localhost:3306/kholofelodb"; 
      Class.forName("com.mysql.jdbc.Driver"); 

      System.out.println("connecting to psysical database..."); 
      Connection conn = DriverManager.getConnection(connectionURL, USER, 
        PASS); 

      Statement statement = conn.createStatement(); 
      System.out.println("Connection has been made"); 

      Scanner keyBoardScanner = new Scanner(System.in); 
      System.out.println("Enter table name:"); 
      String tableName = keyBoardScanner.nextLine(); 

      System.out.println("Creating table..."); 
      statement.executeQuery("create table " + tableName 
        + " (name , age ,salary)"); 
      System.out.println("Table successfully created"); 
      System.out.println("Inserting data into the table ..."); 
      statement.executeUpdate("insert into " + tableName 
        + "values (kholofelo , 21 , 9969696)"); 
     } 

我怎么得到这个代码工作?我只是一个JDBC初学者....

为上述代码; PASS =“passowrd”,USER =“根”

我曾与端口有问题,它是通过本网站固定

非常感谢

+1

数据库的名称是什么? – jlordo 2013-04-05 10:55:20

+1

它告诉你它无法在MySQL中找到'kholofelodb' – 2013-04-05 10:56:14

+0

你是否证实MySQL服务器正在本地机器上运行? – MikeD 2013-04-05 11:02:20

回答

1

请在mysql数据库检查数据库名称“kholofedb”是否存在与否

我想你还没有创建

请检查一次,如果没有创造它和它相关的表也

0

看来,症结在于名称你的数据库。 MySQL是数据库引擎,但在MySQL中,您可以拥有许多带有自己表的数据库。一旦你得到正确的数据库名称,你可能会发现问题会解决。

3

我有同样的问题,发现它的原因是: 这里的数据库的名称是CASE SENSITIVE! 所以,我试图连接使用数据库名称,如“test2”,但数据库名称实际上是“Test2”。

0

问题仅限于您的数据库名称。首先在MySQL数据库创建*在这些领域创建数据库连接.Concentrate: 数据库名称: 网址:提数据库名称正确 该数据库的名称应该是反映在MySQL *

1

登录数据库MySQL服务器,

$ mysql -u <username> -p<password> 

列出所有的数据库,你的数据库名称

mysql> show databases; 

检查是否存在,

+--------------------+ 
| Database   | 
+--------------------+ 
| information_schema | 
| kholofelodb  | 
| mysql    | 
| phpmyadmin   | 
+--------------------+ 

请不要将数据库名称区分大小写。

希望这会有所帮助。