कारण और समाधान
JDBC में Unknown database एरर तब होता है जब कनेक्शन URL में ऐसा डेटाबेस नाम दिया गया हो जो MySQL सर्वर में मौजूद नहीं है।
एरर पैदा करने वाला कोड
String JdbcURL = "jdbc:mysql://localhost:3306/onlinebookstore?useSSL=false"; // 'onlinebookstore' डेटाबेस मौजूद नहीं है
एरर स्टैक ट्रेस:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'onlinebookstore'
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:944)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3978)
...
समाधान: मौजूदा डेटाबेस उपयोग करें
- MySQL कमांड लाइन में मौजूदा डेटाबेस देखें:
mysql> SHOW DATABASES;
आउटपुट में से एक चुनें (उदाहरण: hb_student_tracker)
- JDBC URL में सही डेटाबेस नाम डालें:
String JdbcURL = "jdbc:mysql://localhost:3306/hb_student_tracker?useSSL=false";
सही कनेक्शन कोड
import java.sql.Connection;
import java.sql.DriverManager;
public class DatabaseConnectionDemo {
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 successfully!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
सफल आउटपुट:
Connected to MySQL database successfully!
सामान्य कारण और समाधान
| कारण | समाधान |
|---|---|
| गलत डेटाबेस नाम (टाइपो) | SHOW DATABASES से सही नाम कॉपी करें |
| डेटाबेस बनाया नहीं गया | CREATE DATABASE dbname; चलाएं |
| केस सेंसिटिविटी (Linux पर) | सटीक केस उपयोग करें |
| गलत पोर्ट/होस्ट | 3306 डिफ़ॉल्ट पोर्ट जांचें |
| यूजर के पास डेटाबेस पर अधिकार नहीं | GRANT ALL ON dbname.* TO user@host; |
बेस्ट प्रैक्टिस: डेटाबेस नाम को कॉन्फिग फाइल या एनवायरनमेंट वेरिएबल से पढ़ें, हार्डकोड न करें।