【问题标题】:Oracle database connectivity issue in java using ojdbc14 driver使用 ojdbc14 驱动程序的 Java 中的 Oracle 数据库连接问题
【发布时间】:2023-03-21 20:03:01
【问题描述】:

我在尝试使用 oracle.jdbc.driver.OracleDriver 版本 ojdbc14 连接到 Oracle 数据库时遇到此异常。我已多次验证我使用的是正确的用户名和密码。

java.sql.SQLException: ORA-01017: 无效的用户名/密码;登录被拒绝

我不小心删除了位于 HKEY_LOCAL_MACHINE\SOFTWARE\ODBC 的注册表文件夹 ODBC

这会引起问题吗? 我已经从另一个 Windows 10 用户那里导入了这个文件夹。

【问题讨论】:

  • 真的还在使用Java 1.4吗?
  • 我比你更相信 Oracle 用户名和密码不正确。
  • ODBC 注册表设置与 JDBC 无关。
  • 先生,我如何才能跟踪确切的问题,因为我能够使用 sql developer 成功连接,但不能从代码库连接。他们是否有任何可能造成麻烦的加密过程?
  • ojdbc14 表示它适用于 Java 1.4,您可能需要考虑使用更新版本的驱动程序(例如 ojdbc8 版本 18.3 或 12.2.0.1)

标签: java oracle jdbc ojdbc


【解决方案1】:

例外很明显。

Java.sql.SQLException: ORA-01017: invalid username/password; logon denied

这无疑意味着您尝试连接的数据库的用户名和密码不正确。

验证您正在连接到正确的数据库(IP、服务等),并尝试使用 SqlPlus 登录到该数据库以验证您的详细信息是否正确。

如果您发现 SqlPlus 也拒绝您的登录,请联系相应的管理员来解决您的帐户问题。

【讨论】:

  • 尊敬的先生,我可以使用 sqlplus 和 sql developer 成功连接,但无法从代码库连接。它抛出无效名称密码异常
  • 您能否再次检查您的连接字符串、IP/PORT 设置、用户名等?您能否提供您的配置(JDBC 连接字符串)以及除密码之外的所有内容...您的密码是否有可能包含特殊字符?特殊字符可能会导致问题。您是否使用区分大小写?见:stackoverflow.com/q/14476875/1688441
【解决方案2】:

看看这篇文章:

ORA-01017 Invalid Username/Password when connecting to 11g database from 9i client

当您使用比数据库更旧的驱动程序时,可能会发生此错误。这是因为密码存储在数据库中所谓的验证程序中,验证程序基本上是密码的哈希值。在每个版本中,Oracle 都会更改哈希函数以使其更加健壮。在某些情况下,旧客户端无法再连接。最简单的解决方案是将 JDBC 驱动程序升级到最新版本。

【讨论】:

    【解决方案3】:

    当您没有以正确的方式设置 odbc14.jar 文件时会发生此问题。

    如果您是通过 cmd 执行程序,那么请确保您在 odbc14.jar 的环境变量中设置了路径变量。并重新启动系统并运行程序。

    如果您正在使用 eclipse,请确保通过 right click on project -> build path -> configure build path -> choose Libraries option -> add external JARs -> apply and close. 在您的项目中添加 odbc.jar 文件

    试一试就可以了。

    【讨论】:

    • 如果驱动程序不在类路径中,则会导致完全不同的错误。错误消息清楚地表明驱动程序可用并且能够联系 Oracle 服务器。
    猜你喜欢
    • 2011-03-05
    • 2012-11-20
    • 1970-01-01
    • 1970-01-01
    • 2020-07-07
    • 1970-01-01
    • 2021-03-01
    • 2014-12-02
    • 2019-08-04
    相关资源
    最近更新 更多