Lỗi com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'dbname' xảy ra khi JDBC URL chỉ định database không tồn tại trên server MySQL.
Nguyên nhân
Trong connection URL:
String JdbcURL = "jdbc:mysql://localhost:3306/onlinebookstore?useSSL=false";
Database onlinebookstore không tồn tại.
Cách khắc phục
- Kết nối MySQL command line / Workbench.
- Chạy
SHOW DATABASES;để liệt kê database thực tế. - Chọn database có sẵn (ví dụ:
hb_student_tracker). - Cập nhật JDBC URL:
String JdbcURL = "jdbc:mysql://localhost:3306/hb_student_tracker?useSSL=false";
Code Java hoàn chỉnh:
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();
}
}
}
Kết quả: Connected to MySQL database.
Mẹo: Có thể bỏ tên database trong URL (jdbc:mysql://localhost:3306/?useSSL=false) rồi dùng USE dbname; sau khi kết nối, hoặc chỉ định database trong code: con.setCatalog("dbname").