簡體   English   中英

使用自定義數據庫目錄時如何避免“未知數據庫”錯誤?

[英]How do I avoid an 'unknown database' error when using a custom database directory?

我正在做一個項目,我已將我的數據庫文件夾放在項目文件夾中。 如何與任何目錄建立數據庫連接,而不僅僅是 Java 中的默認 MySQL 目錄?

String MySQLURL = "jdbc:mysql://localhost:3306/C:\\Program Files\\SnakeGame";

String UserName = "root";
String Password = "admin";
Connection con = null;
try {
    con = DriverManager.getConnection(MySQLURL,UserName,Password);
    if (con != null) {
        System.out.println("Database connection is successful !!!!");
    }
} catch (Exception e) {
    e.printStackTrace();
}

執行此操作時,我收到此錯誤:

java.sql.SQLSyntaxErrorException: 未知數據庫 'c:\program files\snakegame'

您的連接 URL 錯誤

String MySQLURL = "jdbc:mysql://localhost:3306/C:\\Program Files\\SnakeGame";

我不確定為什么您的 MySQLURL 包含 C:\Program Files\SnakeGame

mysql 數據庫的連接 URL 是jdbc:Z81C3B080DAD537DE7E10E032EZ]

Where jdbc is the API, mysql is the database, localhost is the server name on which mysql is running (we may also use the server's IP address here), 3306 is the port number, and [DatabaseName] is the name of the database created在 MySQL 服務器上。

在 MySQL 服務器中創建數據庫后,相應地替換 [DatabaseName] 名稱

localhost:3306/C:\\Program Files\\SnakeGame結合起來對任何數據庫都沒有意義——要么您嘗試連接到基於文件的數據庫(在這種情況下localhost...部分沒有意義),要么您正在使用基於服務器的服務器(在這種情況下, C:\...部分沒有意義。

此外,此連接字符串對於基於文件的數據庫幾乎沒有意義,因為您沒有指定特定文件,而只是指定了路徑。

順便說一句,MySQL 是基於服務器的,而不是基於文件的。 它期望在localhost:3306/部分之后有一個數據庫名稱,而不是路徑(因此出現錯誤)。 實際數據庫程序的物理位置是一個安裝/配置問題 - 一旦它已經運行,它與您如何實際連接到數據庫服務器無關。

這樣想:當您調用外部數據庫、web 服務或 web 站點時,您需要知道它部署到哪個物理文件夾? 明顯不是。 調用 MySQL 或其他類似的數據庫時,所涉及的物理文件夾完全無關緊要

其中一條評論指出了這一點,但您是否打算在這里使用 SQlite 或其他一些基於文件的數據庫?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM