JDBC DB2 无法连接(SQLSTATE=08S01)
Posted
技术标签:
【中文标题】JDBC DB2 无法连接(SQLSTATE=08S01)【英文标题】:JDBC DB2 can not connect (SQLSTATE=08S01) 【发布时间】:2013-02-13 09:41:46 【问题描述】:出于某种原因,我想使用 JDBC 连接 Oracle 和 DB2 数据库。在主类中,当我尝试连接 Oracle 时,连接成功,但 DB2 连接未成功给出此错误:“Yuva acilirken hata olustu”表示“无法打开套接字”。可能是什么问题??? Oracle 工作,但 DB2 不工作。我一次又一次地检查 DB2 的所有密码、用户名、主机名和端口。
COM.ibm.db2.jdbc.DB2Exception: [IBM][JDBC Driver] CLI0616E Yuva açılırken hata oluştu. SQLSTATE=08S01
at COM.ibm.db2.jdbc.net.SQLExceptionGenerator.socketException(Unknown Source)
at COM.ibm.db2.jdbc.net.DB2Connection.create(Unknown Source)
at COM.ibm.db2.jdbc.net.DB2Connection.<init>(Unknown Source)
at COM.ibm.db2.jdbc.net.DB2Driver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:590)
at java.sql.DriverManager.getConnection(DriverManager.java:232)
为了获得连接,我把这些写在main中,
connORA = DirectConnection.getOracleConnection();
connDB2 = DirectConnection.getDB2Connection();
我的连接类我定义了Oracle COnnection和DB2连接如下:(可能是DB2 Connection Method有问题?Oracle连接成功)
public static Connection getOracleConnection() throws SQLException, ClassNotFoundException
return getConnection("oracle.jdbc.driver.OracleDriver", "jdbc:oracle:thin:@host:port:name", "username", "password");
public static Connection getDB2Connection() throws SQLException
return getConnection("COM.ibm.db2.jdbc.net.DB2Driver", "jdbc:db2://host:port:name","username", "password");
【问题讨论】:
那么,您可以 telnet 到 db2 服务器主机/端口吗?如果你不能,那么它没有在听 嗨,Brian,如您所说,我无法通过 telnet 连接 DB2。但是当我远程登录 Oracle “我可以成功连接”时,它也不会听。也许这不是问题的根源。 尝试禁用您机器上的防火墙并连接(DB 没有监听,或者防火墙阻塞是此类问题的常见原因...) 【参考方案1】:首先,正如@ThePhantom05 提到的,您应该使用 JCC 驱动程序,而不是旧的网络驱动程序。 DB2 JDBC 连接的正确 URL 模式是 jdbc:db2://host:port/database_name
【讨论】:
【参考方案2】:尝试使用它作为您的驱动程序:
字符串驱动 = "com.ibm.db2.jcc.DB2Driver";
【讨论】:
请将其添加为评论或提供更多解释。以上是关于JDBC DB2 无法连接(SQLSTATE=08S01)的主要内容,如果未能解决你的问题,请参考以下文章
发生连接授权失败。原因:GSSAPI 服务器凭据无效。错误代码=-4214,SQLSTATE=28000