如何解决文件“3050/var/lib/firebird/data/corp”的 CreateFile打开操作期间出现 I/O 错误系统找不到指定的路径
我在尝试使用 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 文档中所述的旧身份验证,但无济于事:
- https://firebirdsql.org/file/documentation/release_notes/html/en/3_0/rnfb30-compat-legacyauth.html
- https://www.symmetricds.org/doc/3.12/html/user-guide.html#_firebird
解决方法
问题是您使用了错误的 JDBC url。 Jaybird 本质上有两种 URL 格式,一种与旧版 Firebird URL 格式相匹配,另一种更符合标准 URL 和其他 JDBC 驱动程序使用的 URL。您当前的 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 URLs (java.sql.DriverManager
) 和 Jaybird JDBC 驱动程序 Java 程序员手册中的 Obtaining connection java.sql.DriverManager(尽管这仅记录了推荐的 URL 格式)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。