Oracle11g 环境变量配置正确,找不到命令的解决办法

本文详细解析了在Linux环境下遇到的SQLPlus命令不可用问题。通过对比su与su-的不同,揭示了用户切换时环境变量加载的重要性,并提供了解决方案。

问题:bash: sqlplus: command not found

在这里插入图片描述
输入其它的命令也时同样找不到
在这里插入图片描述
网上有说环境变量配置的有问题

在这里插入图片描述
查看配置,是没有问题的,而且如果有问题的话,就不会之前还好好的,突然就不行了。

有说加软链接 ln -s $ORACLE_HOME/bin/sqlplus /usr/bin,但是并没有什么用

还有说是直接去oracle bin目录直接执行

在这里插入图片描述
suprise,命令也有就是找不到,这就很头疼了,以为是安装有问题,然后重新安装一遍,能找到。切换成root用户后,再切换成oracle,发现又是报这个错误。肿么办,这回总不是安装的问题了吧,只能再去寻找度娘了。找了许久,终于让我找到问题所在了,这里要感谢这位哥们儿https://blog.youkuaiyun.com/weixin_40467334/article/details/107856602

原来是切换用户出现了问题。

为了偷懒,我使用su oracle直接切换成oracle用户了,导致的问题就是这样的切换方式只是切换了用户,但是用户的环境没有切换过来,还是root用户的环境,所以就找不到了。而使用su - oracle ,加了个“-” 就把环境也切换成当前用户的了,可以参考百度百科的解释
百度百科,也可以参考这位兄台的解释su和su - 的区别

当然我这个环境变量配置正确的情况下,如果使用了su - oracle切换用户还是找不到,那就要真的看看上面几种情况。

配置 Oracle 11g 的环境变量时,需要正确设置 `PATH`、`ORACLE_HOME` 和 `LD_LIBRARY_PATH`,以确保 Oracle 数据库和相关工具能够正常运行。以下是详细的配置方法和注意事项。 ### 配置 ORACLE_HOME `ORACLE_HOME` 是 Oracle 数据库安装的主目录,通常在安装时由用户指定。为了在系统中使用 Oracle命令和库文件,需要将 `ORACLE_HOME` 设置为环境变量。 在 `~/.bashrc` 文件中添加以下内容: ```bash export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 ``` 其中,`/u01/app/oracle/product/11.2.0/dbhome_1` 是 Oracle 11g 的实际安装路径,可以根据实际安装目录进行修改。 ### 配置 PATH `PATH` 环境变量用于指定操作系统查可执行程序的路径。为了能够在终端中直接运行 Oracle 提供的命令(如 `sqlplus`、`rman` 等),需要将 `$ORACLE_HOME/bin` 添加到 `PATH` 中。 在 `~/.bashrc` 文件中添加以下内容: ```bash export PATH=$ORACLE_HOME/bin:$PATH ``` 这样,系统会在 `$ORACLE_HOME/bin` 目录下查 Oracle 命令。 ### 配置 LD_LIBRARY_PATH `LD_LIBRARY_PATH` 用于指定动态链接库(共享库)的搜索路径。Oracle 的许多可执行程序依赖于 `$ORACLE_HOME/lib` 目录下的共享库文件(如 `libclntsh.so`、`libocci.so` 等)。如果这些库文件不在默认的搜索路径中,程序在运行时会报错,提示不到共享库。 在 `~/.bashrc` 文件中添加以下内容: ```bash export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH ``` 这样,系统在运行 Oracle 程序时会优先查 `$ORACLE_HOME/lib` 目录下的共享库文件。 ### 应用配置 完成上述配置后,需要执行以下命令使配置生效: ```bash source ~/.bashrc ``` 可以通过以下命令验证环境变量是否设置成功: ```bash echo $ORACLE_HOME echo $PATH echo $LD_LIBRARY_PATH ``` 如果配置正确,这些命令将输出相应的路径值。 ### 注意事项 1. **路径一致性**:确保 `ORACLE_HOME` 指向的路径与实际安装路径一致,否则会导致 Oracle 工具无法运行。 2. **多用户环境**:如果系统有多个用户需要使用 Oracle,则可以在 `/etc/profile.d/oracle.sh` 中全局设置环境变量,避免每个用户单独配置。 3. **动态库缓存**:在某些情况下,系统可能不会立即识别新添加的库路径。可以使用 `ldconfig` 命令更新动态链接库缓存: ```bash sudo ldconfig ``` 4. **Makefile 中的环境变量使用**:在 Makefile 中可以直接使用 `$(ORACLE_HOME)`、`$(LD_LIBRARY_PATH)` 等环境变量,但需要注意 Makefile 的语法和变量引用方式[^2]。 5. **错误排查**:如果程序运行时报错 `error while loading shared libraries`,请检查 `LD_LIBRARY_PATH` 是否包含所需的库路径,并确认库文件是否存在[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值