我正在使用 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 =“密码”,USER =“root”
我遇到了端口问题,已通过此网站修复了
非常感谢
登录mysql服务器,
$ mysql -u <username> -p<password>
列出所有数据库,
mysql> show databases;
检查你的数据库名称是否存在,
+--------------------+
| Database |
+--------------------+
| information_schema |
| kholofelodb |
| mysql |
| phpmyadmin |
+--------------------+
请注意:数据库名称区分大小写。
希望这有帮助。
请检查mysql数据库中数据库名称“kholofedb”是否存在
我认为你还没有创建
如果没有创建请检查一次,及其相关表也
我也遇到了同样的问题,发现原因是: 这里的数据库名称是区分大小写的! 因此,我尝试使用诸如“test2”之类的数据库名称进行连接,但数据库名称实际上是“Test2”。
当服务器无法找到数据库时会出现此错误。这可能是由于数据库 URL 中给出的端口错误造成的,例如
String DB_URL = "jdbc:mysql://localhost:3307/database_name"
因此,请使用 Xampp 控制器中提到的端口检查此端口号(在上述情况下为 3307)(转到 Xampp 控制器,然后配置 MySql)。
看来问题出在你的数据库名称上。 MySQL 是数据库引擎,但在 MySQL 中,您可以拥有多个带有自己的表的数据库。一旦数据库名称正确,您可能会发现问题就解决了。
问题仅与您的数据库名称有关。首先在 mysql* 中的数据库上创建创建数据库连接。重点关注这些区域: 数据库名称 : URL:正确提及数据库名称 该数据库名称应该反映 mysql* 中的数据库
是的,这个案例也出现在我身上,实际上我的数据库名称是正确的,但问题出在我的端口号上,我使用的是 WAMPP 服务器,其端口号是 3308,我使用 3306 浪费了时间,所以你可以检查你是否使用任何端口号。其他应用程序,然后建议首先检查它的端口值............
我也遇到了同样的问题,实际上是因为他们告诉你使用 SQLWorkbench....这是一个很好的设置,但是当你做这样的开发工作时,有时你在 GUI 上的工作实际上不会保存到 mySQL,我不知道为什么会发生这种情况。工作台是一个很好的东西。我正在通过这个网站一步一步地进行乏味的操作: https://dev.mysql.com/doc/mysql-getting-started/en/ ...它的老派...但它的工作原理,我只是扔掉了我的工作台 LOL-
也许我设置工作台的方式有误?我不知道,但我想我会坚持旧学校的设置-
如果还有其他人不熟悉编程并且不擅长使用终端...以下是我如何使用 MySql Workbench 为我解决这个问题。
spring.datasource.url=jdbc:mysql://localhost:3306/rewards
2)然后我打开了我的 MySql 工作台文件,我将其命名为rewards....我以为这是数据库的名称,但事实并非如此!当我执行“显示数据库;”时MySql 中的命令,未列出“奖励”。我需要创建一个名为“奖励”的模式。