Пожалуйста, предложите решение для решения этой проблемы?? При подаче команды:
sqlplus /nolog
произошедшая ошибка:
sqlplus: error while loading shared libraries:
libsqlplus.so: cannot open shared object file: No such file or directory
Пожалуйста, предложите решение для решения этой проблемы?? При подаче команды:
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
:
$ export ORACLE_HOME=/opt/oracle/instantclient_11_1
$ export LD_LIBRARY_PATH="$ORACLE_HOME"
$ export PATH="$ORACLE_HOME:$PATH"
$ 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.
sudo sh -c "echo /usr/lib/oracle/12.2/client64/lib > /etc/ld.so.conf.d/oracle-instantclient.conf";sudo ldconfig
от https://help.ubuntu.com/community/Oracle%20Instant%20Client
РАЗРЕШЕНИЯ: Я хочу подчеркнуть важность прав для "sqlplus".
Для любого "другого" пользователя UNIX, отличного от владельца/группы, чтобы иметь возможность запускать sqlplus и обращаться к базе данных ORACLE, необходимы разрешения на чтение/выполнение (rx) для этих 4-х каталогов:
$ORACLE_HOME/bin, $ORACLE_HOME/lib, $ORACLE_HOME/oracore, $ORACLE_HOME/sqlplus
Environment. Правильно установите их:
а. ORACLE_HOME (пример: ORACLE_HOME=/u01/app/oranpgm/product/12.1.0/PRMNRDEV/
)
В. LD_LIBRARY_PATH
(пример: ORACLE_HOME=/u01/app/oranpgm/product/12.1.0/PRMNRDEV/lib
)
С. ORACLE_SID
Д. PATH
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 разрешений, и поскольку мой пользователь не был владельцем или не имел назначенной группы оракула, я не мог его прочитать. Простой chmod +r
помог.
У вас уже должны быть все необходимые переменные в /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
Если у вас его нет, создайте его и отправьте.
Вы можете попробовать использовать:
# echo "/usr/lib/oracle/12.2/client64/lib" > /etc/ld.so.conf.d/oracle.conf
# ldconfig
Эта проблема связана с тем, что клиент oracleinstant не настраивает разделяемую библиотеку.
Это означает, что вы не задали переменные ORACLE_HOME и ORACLE_SID. Пожалуйста, настройте правильные рабочие $ORACLE_HOME и $ORACLE_SID, после чего выполните команду sqlplus/nolog. Он будет работать.
Не могли бы вы проверить, указывает ли LD_LIBRARY_PATH на oracle libs
Не забывайте
apt-get install libaio1 libaio-dev
или
yum install libaio