DB2数据库连接问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DB2数据库连接问题相关的知识,希望对你有一定的参考价值。

COM.ibm.db2.jdbc.DB2Exception: [IBM][CLI Driver] SQL30082N 安全处理失败,因为 "24"("USERNAME AND/OR PASSWORD INVALID")。 SQLSTATE=08001

at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.throw_SQLException(Unknown Source)
at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.check_return_code(Unknown Source)
at COM.ibm.db2.jdbc.app.DB2Connection.connect(Unknown Source)
at COM.ibm.db2.jdbc.app.DB2Connection.<init>(Unknown Source)
at COM.ibm.db2.jdbc.app.DB2Driver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:620)
at java.sql.DriverManager.getConnection(DriverManager.java:200)
at Incognito.main(Incognito.java:210)

这是什么原因?????

这个链接错误很明显:
java的配置文件xml文件中链接数据库的用户名或是密码有误。
安全处理失败和"24"("USERNAME AND/OR PASSWORD INVALID")都很明确的指出了密码或用户名无效,建议检查配置文件中连接数据库的语句
参考技术A USERNAME AND/OR PASSWORD INVALID

无效的用户名或(和)密码
参考技术B 1、你服务器的JDBC包版本对不对?
2、服务器防火墙是否开放

java的db2连接问题

【中文标题】java的db2连接问题【英文标题】:Db2 connection problem with java 【发布时间】:2010-12-08 00:05:12 【问题描述】:

我在使用 DB2 时遇到问题。我刚刚将 db2 安装为 db2admin 并使用密码。当我尝试连接到数据库时,它完全成功,并且在运行任何简单的选择查询时,它给了我以下错误:-

DB2 SQL 错误:SQLCODE=-204、SQLSTATE=42704、SQLERRMC=DB2ADMIN.LOGIN、DRIVER=3.57.82

我有一个名为 onp 的数据库和一个名为“login”的表,其中有一个名为“login”的表,其中包含两个字段用户名和密码。

查询我正在运行

    从登录中选择 *;给我错误

DB2 SQL 错误:SQLCODE=-204,SQLSTATE=42704,SQLERRMC=DB2ADMIN.LOGIN,DRIVER=3.57.82

    从 system.login 中选择 *;给我错误:-(//系统是架构名称)

DB2 SQL 错误:SQLCODE=-551, SQLSTATE=42501, SQLERRMC=DB2ADMIN;SELECT;SYSTEM.LOGIN, DRIVER=3.57.82

我已经尝试了网上所有的资源并且完全用尽了。请帮帮我

【问题讨论】:

【参考方案1】:

我对 DB2 了解不多,但是查找错误代码...

第一个错误是因为你没有指定架构,所以找不到登录表。

SQLCODE -204 对象未定义到 DB2

DB2 显然要求您指定模式名称,否则它会在模式中查找与您的登录用户同名的名称。

您必须使用SET SCHEMA 或完全限定表名。

第二个错误是因为您没有执行该选择的权限:

SQLCODE -551,错误:没有 执行操作的特权 对象

我不确定为什么 db2admin 用户无法从该表中进行选择...

资源:List of DB2 SQLCODEs

【讨论】:

-204 还表示完全限定表名中指定的模式不正确或不存在。 如果你有一个命令行,下面的帮助 db2 ? SQLnnnn 其中 nnnn 是 4 位 sql 代码(如果需要,在左侧扩展为 0)。这将打印错误说明。【参考方案2】:

发生 SQL CODE 551,因为连接用户没有执行操作的权限。

转到控制中心 - 转到用户组和对象并选择 DB2ADMIN(假设此用户是连接到 DB2 的用户)

勾选以下所有复选框

向用户授予架构访问权限

向用户授予表访问权限

【讨论】:

【参考方案3】:

我遇到了同样的问题,我通过在我的实体中添加 Schema 解决了它:

@Entity
@Table(name="MyTable", schema="MySchemaName")
public class MyClass implements Serializable 
...

【讨论】:

谢谢@ilias,这解决了我的问题。 这适用于 DB2 但不适用于 H2 数据库,知道为什么吗?【参考方案4】:

您也可以通过以下方式解决问题:

只需向您连接到 DB2 的用户授予适当的权限。

【讨论】:

以上是关于DB2数据库连接问题的主要内容,如果未能解决你的问题,请参考以下文章

spring MVC + Ibatis 连接DB2 数据库 出现警告信息

如何使用 CL 工具连接远程 db2 数据库?

与 DB2 的 JDBC 连接?

jsp用jdbc连接db2数据库的方法

DB2数据库显示未启动,但是可以连接到

vb.net如何连接远程db2数据库