如何在使用 Java-MySQL 时解决 JDBC 中的数据库未知错误?\n
如果你选择了 MySQL 中不存在的任何数据库,则会出现此类错误。我们首先在 JDBC 中显示未知数据库的错误。
Java 代码如下。此处,我们将数据库设置为'onlinebookstore',它不存在
import java.sql.Connection;
import java.sql.DriverManager;
public class UnknownDatabaseDemo {
public static void main(String[] args) {
String JdbcURL = "jdbc:mysql://:3306/onlinebookstore?useSSL=false";
String Username = "root";
String password = "123456";
Connection con = null;
try {
con = DriverManager.getConnection(JdbcURL, Username, password);
System.out.println("Connected to MySQL database");
} catch (Exception e) {
e.printStackTrace();
}
}
}以下输出显示相同错误
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'onlinebookstore' 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:425) at com.mysql.jdbc.Util.getInstance(Util.java:408) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:944) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3978) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3914) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:871) at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1714) at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1224) at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2199) at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2230) at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2025) at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:778) at com.mysql.jdbc.JDBC4Connection.(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:425) at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:386) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at UnknowDatabaseDemo.main(UnknowDatabaseDemo.java:15)
错误的屏幕截图如下

要消除此类错误,只需转到 MySQL 命令行并显示所有数据库名称,然后从那里使用所选的数据库,即真正存在的数据库。
此处,我们有许多数据库,我将选择数据库'hb_student_tracker'。以下是我们使用 SHOW DATABASES 命令获取的所有数据库名称的列表

以下是连接数据库“hb_student_tracker”的 JDBC 代码。代码如下所示
import java.sql.Connection;
import java.sql.DriverManager;
public class UnknownDatabaseDemo {
public static void main(String[] args) {
String JdbcURL = "jdbc:mysql://:3306/hb_student_tracker?useSSL=false";
String Username = "root";
String password = "123456";
Connection con = null;
try {
con = DriverManager.getConnection(JdbcURL, Username, password);
System.out.println("Connected to MySQL database");
} catch (Exception e) {
e.printStackTrace();
}
}
}屏幕截图如下,显示了输出

广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP