Jdbc 使用 oracle 报错 ORA-28040: No matching authentication protocol
时间: 2023-11-29 10:57:49 浏览: 193
这个错误通常是由于 JDBC 驱动版本过低或者 Oracle 数据库版本过高造成的。解决方法如下:
1.升级 JDBC 驱动版本到最新,可以从官方网站下载。
2.升级 Oracle 数据库版本,或者在 Oracle 数据库中启用旧版本的身份验证协议,可以使用以下命令:
```
SQL> ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE;
SQL> ALTER SYSTEM SET SEC_PROTOCOL_ERROR_FURTHER_ACTION = CONTINUE;
```
3.使用旧版本的 JDBC 驱动,如果升级不可行的话。
注意:修改数据库的配置后,需要重启数据库以使配置生效。
相关问题
create connection SQLException, url: jdbc:oracle:thin:@localhost:1521/orcl, errorCode 28040, state 99999
根据提供的引用内容,您遇到的错误是ORA-28040: No matching authentication protocol。这个错误通常是由于客户端和服务器之间的身份验证协议不匹配导致的。解决这个问题的方法是更新客户端的身份验证协议,使其与服务器匹配。
以下是解决这个问题的步骤:
1. 打开SQL*Plus命令行工具。
2. 使用sysdba权限登录到数据库:
```shell
sqlplus / as sysdba
```
3. 运行以下命令来查看当前的身份验证协议:
```sql
SELECT name, value FROM v$parameter WHERE name = 'sqlnet.allowed_logon_version';
```
4. 如果当前的身份验证协议不是与服务器匹配的版本,可以使用以下命令来更新它:
```sql
ALTER SYSTEM SET sqlnet.allowed_logon_version = <匹配的版本> SCOPE=SPFILE;
```
请将`<匹配的版本>`替换为与服务器匹配的版本号。例如,如果服务器使用的是12c版本的身份验证协议,可以将命令修改为:
```sql
ALTER SYSTEM SET sqlnet.allowed_logon_version = 12 SCOPE=SPFILE;
```
5. 重启数据库以使更改生效:
```shell
SHUTDOWN IMMEDIATE;
STARTUP;
```
6. 现在您应该能够成功连接到数据库了。
阅读全文