[01000] [unixODBC] [Driver Manager] Impossible d'ouvrir la bibliothèque '/usr/local/easysoft/oracle/InstantClient112/lib/libsqora.so': fichier introuvable
Je suis en train d'essayer d'accéder à l'oracle à partir d'un serveur linux. Je suis avec unixODBC.
Lorsque j'essaie d'accéder à l'oracle à l'aide de isql et je reçois l'erreur que gestionnaire de pilote ne peut pas ouvrir libsqora..12.1.
odbc.ini
[NAME]
Application Attributes = T
Attributes = W
BatchAutocommitMode = IfAllSuccessful
BindAsFLOAT = F
CloseCursor = F
DisableDPM = F
DisableMTS = T
Driver = Oracle 11g ODBC driver
DSN = DSN_NAME
EXECSchemaOpt =
EXECSyntax = T
Failover = T
FailoverDelay = 10
FailoverRetryCount = 10
FetchBufferSize = 64000
ForceWCHAR = F
Lobs = T
Longs = T
MaxLargeData = 0
MetadataIdDefault = F
QueryTimeout = T
ResultSets = T
ServerName = ServerName
SQLGetData extensions = F
Translation DLL =
Translation Option = 0
DisableRULEHint = T
UserID = xxxx
Password=<password>
StatementCache=F
CacheBufferSize=20
UseOCIDescribeAny=F
odbcinst.ini
[Oracle 11g ODBC driver]
Description=Oracle ODBC driver for Oracle 11g
Driver=/usr/local/easysoft/oracle/InstantClient112/lib/libsqora.so
FileUsage=1
Puis, lorsque j'utilise isql pour accéder à oracle j'obtiens l'erreur suivante:
[root@xxxxx lib]# isql -v NAME
[01000][unixODBC][Driver Manager]Can't open lib '/usr/local/easysoft/oracle/InstantClient112/lib/libsqora.so' : file not found
[ISQL]ERROR: Could not SQLConnect
J'ai eu faute de frappe dans odbcinst.ini. J'ai corrigé, mais toujours la même erreur.
[root@xxxxx tmp]# isql -v NAME
[01000][unixODBC][Driver Manager]Can't open lib '/usr/local/easysoft/oracle/InstantClient112/lib/libsqora.so.11.1' : file not found
[ISQL]ERROR: Could not SQLConnect
[root@xxxxx tmp]# ls -l /usr/local/easysoft/oracle/InstantClient112/lib/libsqora.so.11.1
-rw-r--r-- 1 bin bin 996363 Sep 5 2010 /usr/local/easysoft/oracle/InstantClient112/lib/libsqora.so.11.1
[Oracle 11g ODBC driver]
Description=Oracle ODBC driver for Oracle 11g
Driver=/usr/local/easysoft/oracle/InstantClient112/lib/libsqora.so.11.1
FileUsage=1
ENV
[root@xxxxx tmp]# env
HOSTNAME=xxxxx
SSH2_TTY=/dev/pts/0
SHELL=/bin/bash
TERM=xterm
HISTSIZE=1000
ODBC_DIR=/usr/local/easysoft/unixODBC
OLDPWD=/usr/local/easysoft
SSH_SESSION_ID=1424
SSH_TTY=/dev/pts/0
LD_LIBRARY_PATH=/usr/local/easysoft/lib:/usr/local/easysoft/unixODBC/lib
A__z="*SHLVL
TNS_ADMIN=/usr/local/easysoft/oracle/InstantClient112/network/
INPUTRC=/etc/inputrc
PWD=/tmp
LANG=en_US.UTF-8
ODBCSYSINI=/etc/
HOME=/root
SHLVL=3
ODBCINI=/etc
LESSOPEN=|/usr/bin/lesspipe.sh %s
ORACLE_HOME=/usr/local/easysoft/oracle/InstantClient112/
G_BROKEN_FILENAMES=1
_=/bin/env
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:/usr/local/easysoft/unixODBC/bin:/opt/oraClient/11.2.0.4/bin
Fixe d'origine d'un problème avec LD_LIBRARY_PATH mises à jour, mais maintenant il est cassé une fois depuis que je suis en train d'utiliser le 32-bit client Oracle.
Installé 32bit client oracle dans le répertoire /opt/oraClient/11.2.0.4_32/.
Modifié le odbcinst.ini:
[Oracle 11g ODBC driver]
Description=Oracle ODBC driver for Oracle 11g
#Driver=/usr/local/easysoft/oracle/InstantClient112/lib/libsqora.so.11.1
Driver=/opt/oraClient/11.2.0.4_32/lib/libsqora.so.11.1
FileUsage=1
Erreur:
[root@xxxxx lib]# /usr/local/bin/isql -v NAME
[01000][unixODBC] [Driver Manager]Can't open lib '/opt/oraClient/11.2.0.4_32/lib/libsqora.so.11.1' : file not found
[ISQL]ERROR: Could not SQLConnect
Si j'ai besoin d'utiliser les 32 bits du client Oracle, ce que je fais mal...je sais que c'est quelque chose de variables environnementales.
[root@xxxxx lib]# file /opt/oraClient/11.2.0.4_32/lib/libsqora.so.11.1
/opt/oraClient/11.2.0.4_32/lib/libsqora.so.11.1: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), not stripped
Je activer la trace mais je ne suis pas en mesure de joindre un document ici. Je peux e-mail.
Plus d'informations de débogage:
[root@xxxxx bin]# ldd /opt/oraClient/11.2.0.4_32/lib/libsqora.so.11.1
ldd: warning: you do not have execution permission for `/opt/oraClient/11.2.0.4_32/lib/libsqora.so.11.1'
linux-gate.so.1 => (0xffffe000)
libdl.so.2 => /lib/libdl.so.2 (0xf7f2b000)
libm.so.6 => /lib/libm.so.6 (0xf7f02000)
libpthread.so.0 => /lib/libpthread.so.0 (0xf7ee8000)
libnsl.so.1 => /lib/libnsl.so.1 (0xf7ecf000)
libclntsh.so.11.1 => not found
libodbcinst.so.1 => not found
libc.so.6 => /lib/libc.so.6 (0xf7d71000)
/lib/ld-linux.so.2 (0x00134000)
Je ne reçois pas de la "pas trouvé", qui peut être à l'origine de certains problèmes:
[root@xxxxx bin]# ls /opt/oraClient/11.2.0.4_32/lib/libclntsh.so.11.1
/opt/oraClient/11.2.0.4_32/lib/libclntsh.so.11.1
Ci-dessous est la plus récente env de sortie:
[root@xxxxx]# env
HOSTNAME=xxxxx
SSH2_TTY=/dev/pts/0
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
ODBC_DIR=/usr/local/easysoft/unixODBC
SSH_TTY=/dev/pts/0
LD_LIBRARY_PATH=/opt/oraClient/11.2.0.4_32/:/opt/oraClient/11.2.0.4_32/lib/:/usr/local/easysoft/oracle/InstantClient112:/usr/local/easysoft/oracle/InstantClient112/lib/
TNS_ADMIN=/opt/oraClient/11.2.0.4_32/network/
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:/usr/local/easysoft/unixODBC/bin:/opt/oraClient/11.2.0.4_32/bin
INPUTRC=/etc/inputrc
LANG=en_US.UTF-8
ODBCSYSINI=/etc/
SHLVL=4
HOME=/root
ODBCINI=/etc
ORACLE_HOME=/opt/oraClient/11.2.0.4_32/
G_BROKEN_FILENAMES=1
_=/bin/env
source d'informationauteur user3521305
Vous devez vous connecter pour publier un commentaire.
Cette erreur est trompeuse:
J'ai été capable de chasser en bas de la réelle fichier manquant par l'exécution de:
Cette retourné une série de fichiers et l'un dit:
Qui était le coupable pour moi. Ensuite, j'ai créé le lien que j'ai besoin et le tour est joué, l'erreur a disparu.
ref: http://mailman.unixodbc.org/pipermail/unixodbc-support/2011-November/003018.html
Instant client ne dispose pas d'un
lib
répertoire. Si vous avez téléchargé lainstantclient-odbc-linux
le paquet et décompressé que dans le même emplacement que le package de base, puis lelibsqora.so.11.1
fichier sera durectly sous/usr/local/easysoft/oracle/InstantClient112
.De sorte que votre .ini doit pointer vers:
Note de la prolongation de bien; vous pourriez mou-lien de
libsqora.so
. Si vous avez déplacé le.so
fichiers dans un sous-répertoire après la décompression (?) puis vous auriez besoin:Il semble que vous avez reoriganised l'instant les fichiers du client après la décompression, la création d'un
lib
répertoire. Je ne suis pas sûr si cela va directement vous causer des problèmes. Mais vous aussi, vous n'avez pas défini deLD_LIBRARY_PATH
comme le les instructions d'installation suggèrent:Clairement l'étape (4) ne fonctionne pas pour vous, mais je pense que c'est parce que vous ne l'avez pas fait à l'étape (3); et je pense que vous avez fractionner les fichiers - qui peut elle-même entraîner un problème, vous devrez peut-être inclure à la fois
.../InstantClient112
et.../InstantClient112/lib
dans leLD_LIBRARY_PATH
variable. Et assurez-vous que la valeur modifiée est exporté. Je ne suis pas sûr pourquoi vous voulez réorganiser les fichiers.sudo apt-get install libaio1 libaio-dev