이 유형의 오류는 MySQL에 존재하지 않는 데이터베이스를 선택하는 경우 발생합니다. 먼저 JDBC에서 알 수 없는 데이터베이스의 오류를 표시해 보겠습니다.
자바 코드는 다음과 같다. 여기서는 데이터베이스를 존재하지 않는 'onlinebookstore'로 설정했습니다.
import java.sql.Connection; import java.sql.DriverManager; public class UnknownDatabaseDemo { public static void main(String[] args) { String JdbcURL = "jdbc:mysql://localhost: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://localhost: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(); } } }
스크린샷은 다음과 같이 출력을 표시합니다.