ORA-28040:No matching authentication protocol问题解决

置条件: 现场使用oracle数据库19c版本

出现问题: 程序连接数据库时,提示“ORA-28040:没有匹配的验证协议”

原因: 数据库的版本19c与项目中的oracle的jar版本不匹配的问题

解决方法:

1. 下载ojdbc8

Oracle下载:JDBC and UCP Downloads pageicon-default.png?t=O83Ahttps://www.oracle.com/database/technologies/appdev/jdbc-downloads.html

选择自己需要的版本,此次选择下载ojdbc8.jar

2. 安装到本地maven库

mvn install:install-file -Dfile=D:\XXX\XXX\maven\ojdbc8.jar -DgroupId=com.oracle -DartifactId=ojdbc8 -Dversion=12.2.0.1 -Dpackaging=jar -DgeneratePom=true

-Dfile=D:\XXX\XXX\maven\ojdbc8.jar 表示当前ojdbc8.jar所在路径是D:\XXX\XXX\maven\ojdbc8.jar
-DgroupId=com.oracle 表示maven中的<groupId> 是 com.oracle
-DartifactId=ojdbc8   表示maven的中<artifactId> 是 ojdbc8
-Dversion=12.2.0.1 表示maven中的<version> 是12.2.0.1
 

执行结果如上图

3. 在项目中pom文件中引用

<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc8</artifactId>
    <version>12.2.0.1</version>
</dependency>

<think>好的,我现在需要解决用户在使用yum安装devtoolset-9时遇到的“No package available”错误。首先,用户提到了devtoolset-6和devtoolset-8的安装方法,但devtoolset-9可能不在默认的yum仓库中。我需要回忆一下Red Hat或CentOS的软件仓库结构。 记得DevToolset是Red Hat Software Collections(RHSCL)的一部分,所以用户可能需要启用正确的仓库。CentOS系统可能需要通过CentOS SCLo RH仓库来获取这些包。如果用户没有启用这个仓库,yum就无法找到devtoolset-9的包。 接下来,我应该检查仓库配置是否正确。用户可能需要安装centos-release-scl包来启用SCL仓库。例如,运行yum install centos-release-scl。确认这一步是否已经完成。 另外,用户可能使用的是较旧的CentOS版本,比如CentOS 7,而devtoolset-9可能只支持特定的版本。需要确认系统版本是否兼容。如果系统版本太旧,可能需要升级或者寻找其他源。 如果仓库已经正确启用,但依然找不到包,可能需要手动添加第三方仓库,比如EPEL或者通过其他途径获取。但要注意第三方源的可靠性。 最后,安装完成后需要配置环境变量,通常通过source命令加载对应的enable脚本。用户可能需要将source命令添加到/etc/profile或者个人配置文件中,确保环境变量生效。 总结步骤:启用SCL仓库,安装对应的release包,然后尝试安装devtoolset-9。如果仓库不存在,可能需要检查系统版本或寻找替代方案。</think>要解决使用`yum`安装`devtoolset-9`时提示`No package available`的问题,可以按以下步骤排查和操作: --- ### 1. **确认仓库是否包含devtoolset-9** `devtoolset-9`属于**Software Collections (SCL)**,需确保已启用对应的仓库: - **CentOS/RHEL 7**:需启用`centos-release-scl`或`rhel-server-rhscl`仓库: ```bash yum install centos-release-scl # CentOS 7 yum-config-manager --enable rhel-server-rhscl-7-rpms # RHEL 7 ``` - **CentOS 8**:仓库名称可能为`PowerTools`或`AppStream`,需启用: ```bash dnf config-manager --set-enabled powertools # CentOS 8 ``` 如果仓库未正确启用,`devtoolset-9`可能无法被搜索到[^2]。 --- ### 2. **检查系统版本兼容性** - **CentOS/RHEL 7**:支持`devtoolset-9`。 - **CentOS 8**:默认仓库可能仅包含更高版本(如`devtoolset-11`),需确认是否官方支持`devtoolset-9`。 - 若系统版本过低(如CentOS 6),需升级或通过第三方仓库获取。 --- ### 3. **手动安装仓库配置(如缺失)** 若仓库未自动配置,可手动添加: - 对于CentOS 7,直接安装仓库包: ```bash yum install https://vault.centos.org/centos/7/sclo/x86_64/rh/Packages/c/centos-release-scl-2-3.el7.centos.noarch.rpm ``` --- ### 4. **安装devtoolset-9** 启用仓库后,执行安装命令: ```bash yum install devtoolset-9-gcc* # 安装全部组件 ``` --- ### 5. **配置环境变量** 安装完成后,加载环境变量: ```bash source /opt/rh/devtoolset-9/enable ``` 永久生效则需将配置写入文件(如`/etc/profile`): ```bash echo 'source /opt/rh/devtoolset-9/enable' >> /etc/profile source /etc/profile ``` --- ### 常见问题 - **仓库未找到**:检查网络或镜像源配置,确保仓库地址可达。 - **依赖冲突**:尝试清理缓存后重试: ```bash yum clean all yum makecache ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值