我在linux服务器中的oracle安装文件夹是“ /lib/oracle/11.2/client64/lib”
在〜/ .bash_profile中设置变量是
ORACLE_HOME=/usr/lib/oracle/11.2/client64
LD_LIBRARY_PATH=$ORACLE_HOME/lib
export ORACLE_HOME
export LD_LIBRARY_PATH
此外,链接文件夹“ /usr/lib/oracle/11.2/client64/lib”
ls -al|grep libclntsh.so
## Results are:
libclntsh.so -> libclntsh.so.11.1
libclntsh.so.10.1 -> /oracle/app/pracle/product/11.2.0/lib/libclntsh.so
libclntsh.so.11.1
在python
中os.environ['ORACLE_HOME']
os.environ['LD_LIBRARY_PATH']
## Results are:
'/usr/lib/oracle/11.2/client64'
'/usr/lib/oracle/11.2/client64/lib'
import cx_Oracle ## This Part is ok
但是,此代码是错误
cx_Oracle.clientversion()
## or
dsn = cx_Oracle.makedsn('ip',port,'SID')
conn = cx_Oracle.connect(user='uid',password='pwd',dsn=dsn)
## Above Code Results:
DatabaseError:Error while trying to retrieve text for error ORA-01804
我怀疑我的文件夹“ /etc/ld.conf.d”没有“ oracle-instantclient.conf”文件。
该文件夹只有“ mariadb-x86x64.conf”
ip,端口,SID和用户ID,密码都正确!
我在linux服务器中的oracle连接设置有什么问题?
答案 0 :(得分:0)
对不起。是我的错
我只是更改了ORACLE_HOME和LD_LIBRARY_PATH而它正在运行。
os.environ["ORACLE_HOME"] = 'oracle/app/oracle/product/11.2.0'
os.environ["LD_LIBRARY_PATH"] = 'oracle/app/oracle/product/11.2.0/lib'
conn = oci.connect('ID/pw@localhost:port/SID')
解决了。