この問題を解決するための解決策を提案してください??コマンドsqlplus /nolog
を与えている間、発生したエラーは
sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory
..
シェルから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
...
Sudo sh -c "echo /usr/lib/Oracle/12.2/client64/lib > /etc/ld.so.conf.d/Oracle-instantclient.conf";Sudo ldconfig
from https://help.ubuntu.com/community/Oracle%20Instant%20Client
設定してこのエラーを解決しました
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$Oracle_HOME/lib:$Oracle_HOME
はい、$ Oracle_HOME/libだけでなく、$ Oracle_HOMEもあります。
権限:「sqlplus」の権限の重要性を強調したいと思います。
Owner/Group以外の「その他」のUNIXユーザーがsqlplusを実行してOracleデータベースにアクセスできるようにするには、これらの4つのディレクトリの読み取り/実行権限(rx)が必要です。
$ 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 12cとLD_LIBRARY_PATHが正しく設定されているので、これにもう一度入りました。 strace
を使用して、探していたものと失敗した理由を確認しました。
strace sqlplus /nolog
sqlplusはこのライブラリを異なるディレクトリからロードしようとしますが、一部はインストールに存在しませんでした。次に、LD_LIBRARY_PATHにすでにあるものを試しました。
open( "/ Oracle/product/12.1.0/db_1/lib/libsqlplus.so"、O_RDONLY)= -1 EACCES(許可は拒否されました)
そのため、私の場合、libには740の権限があり、ユーザーは所有者ではないか、Oracleグループが割り当てられていなかったため、読み込めませんでした。とても簡単 chmod +r
助けた。
使用を試すことができます:
# echo "/usr/lib/Oracle/12.2/client64/lib" > /etc/ld.so.conf.d/Oracle.conf
# ldconfig
この問題は、oracleinstantクライアントが共有ライブラリを構成しないためです。
/etc/profile.d/Oracle.sh
に必要な変数がすべてあるはずです。必ず入手してください:
$ source /etc/profile.d/Oracle.sh
PS:このファイルのコンテンツは次のようになります。
Oracle_HOME=/usr/lib/Oracle/11.2/client64
PATH=$Oracle_HOME/bin:$PATH
LD_LIBRARY_PATH=$Oracle_HOME/lib
export Oracle_HOME
export LD_LIBRARY_PATH
export PATH
持っていない場合は、作成して入手します。
これは、Oracle_HOMEおよびOracle_SID変数を設定しなかったことを意味します。適切に動作する$ Oracle_HOMEと$ Oracle_SIDを設定してから、sqlplus/nologコマンドを実行してください。動作します。
LD_LIBRARY_PATHがOracleライブラリを指しているかどうかを確認してください