请提出解决这个问题的解决scheme? 在给命令sqlplus /nolog
发生的错误是
sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory
..
从shell正确运行sqlplus
的最小配置是设置ORACLE_HOME
和LD_LIBRARY_PATH
。 为了便于使用,您也可以相应地设置PATH
。
假设您已经在/opt/oracle/instantclient_11_1
压缩了所需的存档:
sh$ export ORACLE_HOME=/opt/oracle/instantclient_11_1 sh$ export LD_LIBRARY_PATH="$ORACLE_HOME" sh$ export PATH="$ORACLE_HOME:$PATH" sh$ sqlplus SQL*Plus: Release 11.1.0.7.0 - Production on Wed Dec 31 14:06:06 2014 ...
我通过设置解决了这个错误
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:$ORACLE_HOME
是的,不仅$ ORACLE_HOME / lib而且$ ORACLE_HOME也是。
权限:我想强调“sqlplus”权限的重要性。
对于所有者/组以外的任何“其他”UNIX用户,要能够运行sqlplus并访问ORACLE数据库,则需要(rx)读取这些4个目录的权限:
$ ORACLE_HOME / bin,$ ORACLE_HOME / lib,$ ORACLE_HOME / oracore,$ ORACLE_HOME / sqlplus
环境。 正确设置:
A. ORACLE_HOME(例如: ORACLE_HOME=/u01/app/oranpgm/product/12.1.0/PRMNRDEV/
)
B. LD_LIBRARY_PATH(例如: ORACLE_HOME=/u01/app/oranpgm/product/12.1.0/PRMNRDEV/lib
)
C. ORACLE_SID
D.路径
export PATH="$ORACLE_HOME/bin:$PATH"
这意味着你没有设置ORACLE_HOME和ORACLE_SID变量。 请设置正确的$ ORACLE_HOME和$ ORACLE_SID,然后执行sqlplus / nolog命令。 这将工作。
你能否检查LD_LIBRARY_PATH是否指向oracle库
别忘了
apt-get install libaio1 libaio-dev
要么
yum install libaio
我知道这是一个古老的线程,但我用Oracle 12c再次进入了这一点,LD_LIBRARY_PATH已经正确设置。 我用strace
来看看它究竟在寻找什么,为什么失败:
strace sqlplus /nolog
sqlplus试图从不同的目录加载这个lib,有些在我的安装中不存在。 然后它尝试了我已经在我的LD_LIBRARY_PATH上的那个:
open(“/ oracle / product / 12.1.0 / db_1 / lib / libsqlplus.so”,O_RDONLY)= -1 EACCES(权限被拒绝)
所以在我的情况下,该库有740个权限,由于我的用户不是一个所有者或没有分配的oracle组我不能读取它。 所以简单的chmod +r
帮助。