我有一个简单的Java应用程序突然停止连接到本地DB2数据库,引用了错误的密码作为原因。数据库使用Windows用户凭据进行身份验证。我使用的是包含分号和一些括号的密码,当我将其更改为更简单的内容时,应用程序又能够再次连接。
我的问题是:密码中的这些字符是否有可能导致登录失败?
例外是:COM.ibm.db2.jdbc.DB2Exception: [IBM][CLI Driver] SQL30082N Security processing failed with reason "24" ("USERNAME AND/OR PASSWORD INVALID"). SQLSTATE=08001
连接代码如下:
String username = "username";
String password = "pass;w(ord)";
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");
db2Connection = DriverManager.getConnection("jdbc:db2:DBNAME", username, password);
答案 0 :(得分:1)
如果DB2密码包含特殊字符,则需要在连接字符串中引用它。
尝试将password
变量更改为:
String password = "\"pass;w(word)\"";
答案 1 :(得分:0)
尝试通过命令窗口连接到数据库,以确保一切正常:
c:\>db2 connect to dbname user username using pass;w(ord)
或在db2命令行中
db2> connect to dbname user username using pass;w(ord)
可能连接方法,凭据或防火墙规则已更改,
一旦通过提供正确的凭据到达数据库,您现在可以用Java检查问题。
尝试Java之前的一步是从 DataStudio 连接。这是一个Java应用程序,因此您可以验证是否可以从Java连接到您的数据库。