Fedora 39下非oracle用户用sqlplus直连Oracle报ORA-12547求助
解决ORA-12547问题,让普通用户无需连接串登录Oracle
检查并设置ORACLE_SID环境变量
不指定连接串时,sqlplus会读取ORACLE_SID环境变量定位本地实例。oracle用户通常已配置该变量,但普通用户user可能缺失:
- 临时生效:执行
export ORACLE_SID=id(这里的id要和你使用@localhost/id中的实例名保持一致) - 永久配置:编辑用户主目录下的
~/.bashrc或~/.bash_profile,添加以下内容:
执行export ORACLE_SID=idsource ~/.bashrc使配置立即生效。
修复Oracle IPC目录权限
Oracle本地IPC通信依赖/tmp/.oracle/目录,普通用户需具备读写权限:
- 查看当前权限:
ls -ld /tmp/.oracle/ - 权限不足时执行以下命令修复:
由于sudo chmod 775 /tmp/.oracle/ sudo chgrp dba /tmp/.oracle/user已加入dba组,修改后即可获得该目录的读写权限。
配置ORACLE_HOME与PATH环境变量
确保user的环境变量中正确设置Oracle安装路径:
- 临时生效:
(替换为你实际的Oracle安装目录)export ORACLE_HOME=/u01/app/oracle/product/19c/dbhome_1 export PATH=$ORACLE_HOME/bin:$PATH - 永久配置:将上述两行添加到
~/.bashrc或~/.bash_profile中,执行source ~/.bashrc生效。
验证登录
完成以上配置后,重新打开终端或执行source ~/.bashrc,直接运行sqlplus system/manager即可正常登录本地数据库。
内容的提问来源于stack exchange,提问作者user1291806
相关产品推荐
相关产品推荐

