使用SymmetricDS连接Firebird 3.0报找不到指定路径错误的问题咨询
SymmetricDS 连接 Firebird 3.0 触发 CreateFile I/O 错误的解决方法
在通过SymmetricDS对接Firebird 3.0数据库的过程中,触发如下报错:
CreateFile(打开文件)操作时发生I/O错误,目标文件为
3050/var/lib/firebird/data/corp,系统提示找不到指定路径
当前根节点(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
此前已按照官方文档指引尝试开启legacy兼容认证,问题仍未解决。
故障排查与修正步骤
- 修正JDBC URL的格式错误:当前配置混淆了JayBird驱动的两种连接模式,缺少TCP连接必需的
//分隔符,驱动会将该配置识别为嵌入式本地连接,完全忽略端口参数,直接将后续的全部字符串作为数据库文件路径加载,最终出现报错路径中携带端口值3050的异常。修正后的TCP连接标准配置为db.url=jdbc:firebirdsql://localhost:3050/var/lib/firebird/data/corp - 校验数据库文件的实际路径:登录Firebird服务所在的服务器主机,逐段确认路径有效性,检查目标数据库文件的完整名称(注意是否存在
.fdb/.gdb等默认文件后缀),URL中填写的文件路径必须和磁盘上的实际文件名完全匹配,不能省略后缀、写错目录层级 - 调整服务端的路径访问规则:检查Firebird配置文件
firebird.conf中的DatabaseAccess参数,将其设置为Full,允许服务端跨目录访问数据库文件;同时确认运行SymmetricDS进程的系统用户,对数据库文件及其所有父目录拥有可读权限,避免因权限不足触发I/O类报错 - 明确故障影响范围:此前配置的legacy认证是用于解决Firebird 3.0默认新型认证机制和旧客户端的登录兼容问题,和本次的文件路径定位错误不属于同一类故障,因此即使完成legacy认证配置,也无法解决当前的I/O报错
内容的提问来源于stack exchange,提问作者Edward Chome
相关产品推荐
相关产品推荐

