I/O 文件“3050/var/lib/firebird/data/corp”的 CreateFile(打开)操作期间出错。该系统找不到指定的路径

I/O error during CreateFile (open) operation for file "3050/var/lib/firebird/data/corp". The system cannot find the path specified

我收到一个错误 “系统找不到指定的路径” 试图使用 SymmetricDS 连接到 Firebird 3.0。这是错误和我的根节点配置 (engine.name=corp-000).

# The class name for the JDBC Driver 
db.driver=org.firebirdsql.jdbc.FBDriver

# The JDBC URL used to connect to the database
db.url=jdbc:firebirdsql:localhost:3050/var/lib/firebird/data/corp

这是我遇到的错误

我尝试按照 SymmetricDS 文档中的说明启用旧版身份验证,但无济于事:

问题是你用错了JDBCurl。 Jaybird 基本上有两种 URL 格式,一种与旧版 Firebird URL 格式匹配,另一种更符合标准 URLs 和其他人使用的 URLs JDBC 司机。您当前的 URL 结合了两种格式的一部分,因此它不起作用,因为对于您使用的格式,它会将 3050/var/lib/firebird/data/corp 解释为文件路径(这会导致 “系统找不到指定的路径” 错误),而不是端口 3050 和文件路径 /var/lib/firebird/data/corp.

您需要使用推荐的格式之一

jdbc:firebirdsql://localhost:3050//var/lib/firebird/data/corp

注意端口后面的双斜杠(//),这是必须的,否则路径会被解释为相对路径var/lib/...,这不是你想要的。

或不带端口(默认为 3050):

jdbc:firebirdsql://localhost//var/lib/firebird/data/corp

或旧格式

jdbc:firebirdsql:localhost/3050:/var/lib/firebird/data/corp

注意主机和端口之间的斜杠 (/),以及端口后面的冒号 (:)。

或不带端口(默认为 3050):

jdbc:firebirdsql:localhost:/var/lib/firebird/data/corp

另请参阅 Jaybird JDBC Driver Java 程序员手册 中的 JDBC URLs (java.sql.DriverManager) in the Jaybird Frequently Asked Questions, and Obtaining connection java.sql.DriverManager(尽管这仅记录了推荐的 URL格式)。