我在Windows XP上安装了Firebird 2.1,并使用firebirdsql.jdbc-2.1.6驱动程序与java连接。代码:
Class.forName("org.firebirdsql.jdbc.FBDriver");
connection = DriverManager.getConnection(
"jdbc:firebirdsql://localhost/3050//C:/firebird/database/EMPLOYEE.FDB",
"test","test");
我收到以下错误:
Caused by: org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544375. unavailable database Reason: unavailable database at org.firebirdsql.jdbc.FBDataSource.getConnection(FBDataSource.java:122) at org.firebirdsql.jdbc.FBDriver.connect(FBDriver.java:140) at java.sql.DriverManager.getConnection(DriverManager.java:525) at java.sql.DriverManager.getConnection(DriverManager.java:171)
请帮忙。
问题解决了: 实际上我从jar文件中遇到了问题
http://mirrors.ibiblio.org/pub/mirrors/maven2
我从firebird官方网站下载了jaybird-full-2.1.6.jar,问题解决了。
正确的网址是
"jdbc:firebirdsql://localhost:3050/C:\\firebird\\database\\EMPLOYEE.FDB"
我之前也尝试过这个网址,但由于jar问题而无法正常工作。
答案 0 :(得分:1)
正如@ThorbjørnRavnAndersen所说,你的Jaybird JDBC URL是不正确的。语法为jdbc:firebirdsql:[host[/port]:]<database>
。您需要在主机/端口和数据库路径之间使用冒号。也许是这样的:
"jdbc:firebirdsql://localhost/3050:C:\\firebird\database\EMPLOYEE.FDB"
哎呀,我留下了领先的斜线;试试这个:
"jdbc:firebirdsql:localhost/3050:C:\\firebird\database\EMPLOYEE.FDB"
附录:您可能会浏览common errors列表。此外,我的firebird数据库文件以.fdb
结尾,但常见问题解答提及.gdb
。检查不会有害。
答案 1 :(得分:1)
来自https://www.firebirdsql.org/file/documentation/drivers_documentation/java/faq.html#pure-java-default
默认网址格式:
"jdbc:firebirdsql://host[:port]/<database>"
已弃用,但仍支持旧版网址格式:
"jdbc:firebirdsql:host[/port]:<database>"
然后,正确的URL应为:
"jdbc:firebirdsql://localhost:3050/C:/firebird/database/EMPLOYEE.FDB"
答案 2 :(得分:0)
您的网址很可能已被破解。
将实际源附加到jar并在FBDataSource.getConnection(...)中设置断点,并查看尝试连接时实际存在的值。
您是否完全确定主机名与端口的组合是否与FDB文件的路径一致?
答案 3 :(得分:0)
查看本网站上的文档: http://www.firebirdsql.org/file/documentation/drivers_documentation/java/faq.html,第3.1项
似乎在[port]之后,你必须有一个斜杠&#34; /&#34;或双斜线&#34; //&#34;以防你在linux服务器上连接。
答案 4 :(得分:0)
要连接到位于远程计算机或云(linux)上的数据库,请使用以下链接。
JDBC:firebirdsql:34.212.208.251/3050:/opt/app/db/sample_training.fdb
答案 5 :(得分:0)
您应该尝试这个。在Windows上对我有效。
jdbc:firebirdsql://localhost:3050/C:\firebird\database\EMPLOYEE.FDB
还要确保您为防火墙添加了端口3050的例外。