sqlplus:加载共享库时出错:libsqlplus.so:无法打开共享对象文件:没有这样的文件或目录

请提出解决这个问题的解决scheme? 在给命令sqlplus /nolog发生的错误是

sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory ..

从shell正确运行sqlplus的最小配置是设置ORACLE_HOMELD_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”权限的重要性。

  1. 对于所有者/组以外的任何“其他”UNIX用户,要能够运行sqlplus并访问ORACLE数据库,则需要(rx)读取这些4个目录的权限:

    $ ORACLE_HOME / bin,$ ORACLE_HOME / lib,$ ORACLE_HOME / oracore,$ ORACLE_HOME / sqlplus

  2. 环境。 正确设置:

    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帮助。