ORA-01005: null password given; logon denied

ORA-01005: null password given; logon denied

最近在测试JDBC连接Oracle数据库兼容密码包含特殊字符的问题时,出现了java.sql.SQLException: ORA-01005: null password given; logon denied的报错,尝试了各种Debug调试,确认程序完全没有问题,在本机测试也没问题,数据库驱动(官网下载的对应数据库版本的驱动)和JDK版本(都是Oracle JDK 1.8)两边环境也一样,但部署到应用环境上就是报错,翻遍了各种帖子也没解决,最后偶然看到了一个回复,尝试了下果然好了

具体报错信息如下:

java.sql.SQLException: ORA-01005: null password given; logon denied
        at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:628)
        at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:557)
        at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:552)
        at oracle.jdbc.driver.T4CTTIfun.processError(T4CTTIfun.java:1312)
        at oracle.jdbc.driver.T4CTTIoauthenticate.processError(T4CTTIoauthenticate.java:699)
        at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:726)
        at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:291)
        at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:389)
        at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTHWithO5Logon(T4CTTIoauthenticate.java:1455)
        at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:1219)
        at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:1173)
        at oracle.jdbc.driver.T4CConnection.authenticateUserForLogon(T4CConnection.java:1030)
        at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:646)
        at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:1032)
        at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:90)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:681)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:602)
        at java.sql.DriverManager.getConnection(DriverManager.java:664)
        at java.sql.DriverManager.getConnection(DriverManager.java:247)
        at com.adtec.moia.control.agent.util.MoiaUtil.getConnection(MoiaUtil.java:195)
        at com.adtec.moia.control.agent.deal.dbsjob.DbsJobExecutor.execute(DbsJobExecutor.java:70)
        at com.adtec.moia.control.agent.deal.JobExecuteThread.run(JobExecuteThread.java:99)
        at java.lang.Thread.run(Thread.java:748)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

最后在Bing国际版的搜索中找到了下面的参考信息:

意思就是让换下驱动尝试下

java.sql.SQLException: ORA-01005: null password given; logon denied - Java - JDBC Archive (databaseusers.com)

java.sql.SQLException: ORA-01005: null password given; logon denied

Hello! I'm getting this exception while trying to establish a JDBC connection to an Oracle database (10g Express Edition): java.sql.SQLException: ORA-01005: null password given; logon denied The code is the following:try { OracleDataSource ods = new OracleDataSource(); ods.setDriverType("thin"); ods.setPassword("rafael"); ods.setUser("rafael"); ods.setDatabaseName("XE"); ods.setPortNumber(1521); ods.setServerName("iceman"); Connection c = ods.getConnection(); } catch (SQLException e) { e.printStackTrace(); }I'm also getting the same exception while running this code:Connection c = DriverManager.getConnection("jdbc:oracle:thin:#iceman:1521:XE", "rafael", "rafael");An interesting fact is DbVisualizer is successfully connecting to this database using exactly the above url. You can see the screen captured here: http://db.tt/YKxQCvf Anyone can help me to bypass this problem? Thanks in advance Edited by: user13275297 on 22/06/2011 13:14
This could be the jar issue, post the jdk version and jar you are using to establish the db connection.
if you are not using ojdbc14.jar, then you can make a try with this jar.
also go through the below post, it might help you:
Login failure using Oracle Express 10.2, Java 6 and ojdbc5/6 11.x

最终解决:

已经黔驴技穷的情况下就尝试下,又下载了一个低版本的数据库驱动,替换了原装驱动,JDK没有动,再验证通过了…

根本原因还是没有太明白,也有可能是JDK版本和数据库驱动兼容性的问题,但解决方案就是这样,尝试换下不同版本的驱动

PS:

我的数据库版本是19c,当时驱动是直接使用的数据库服务器下的这个驱动$ORACLE_HOME/jdbc/lib/ojdbc8.jar

后面也怀疑是驱动问题,就从官网上下载了对应版本的驱动,但还是报错,就是这块走进了小黑屋,就没再想驱动的问题

最后解决了问题后,在这个目录下./dmu/jlib/ojdbc8.jar也发现了还有一个ojdbc8.jar驱动,和后来下载的低版本驱动一致,尝试使用了下一切正常

所以,如果遇到这样的报错,在确定代码无问题的情况下,还是需要从驱动出发进行解决…

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
ORA-01017错误表示无效的用户名/密码,登录被拒绝。这种错误通常发生在尝试通过给定的用户名和密码登录到Oracle数据库时。可以根据以下解决方案来解决这个问题: 1. 确认用户名和密码是否正确:首先,确保您输入的用户名和密码是正确的。检查大小写和任何特殊字符。 2. 检查数据库连接字符串:如果您使用的是连接字符串来连接数据库,请确保连接字符串中的用户名和密码是正确的。您可以尝试手动输入连接字符串,而不是从程序中获取。 3. 检查数据库状态:确保Oracle数据库正在运行,并且数据库实例是可用的。您可以使用SQL*Plus或其他管理工具来连接到数据库并验证数据库的状态。 4. 检查用户权限:如果您确定用户名和密码是正确的,但仍然无法登录,请检查用户是否具有足够的权限来进行登录操作。您可以使用管理员权限登录到数据库,并检查用户的权限设置。 5. 重置用户密码:如果您无法确定密码是否正确,可以尝试重置用户的密码并使用新密码进行登录。您可以使用管理员权限登录到数据库,并执行ALTER USER语句来更改用户的密码。 综上所述,ORA-01017错误通常是由于无效的用户名/密码引起的。您可以通过确认准确的用户名和密码,检查数据库连接字符串,检查数据库状态,检查用户权限,或者重置用户密码来解决这个问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [ORACLE数据库报错:ORA-01017: invalid username/passwordlogon denied](https://blog.csdn.net/mu_Tchun/article/details/113754274)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [ORA-01017: invalid username/password; logon denied Oracle数据库报错解决方案一](https://blog.csdn.net/qq_16183731/article/details/83864811)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [ORA-01017: invalid username/password; logon denied Oracle数据库报错解决方案一-附件资源](https://download.csdn.net/download/weixin_42186728/15514749)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值