Linux下使用Python連接Oracle 報cx_Oracle.DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded解決方法
- 這個導致這個問題的原因是本機的Python2.7是64位的
- 而數據庫用了32位的instantclient-basic
- 所以要把instantclient-basic的版本更新為64位的
- 以下是按照官網文檔操作的,自測沒有問題,這里下載64位。
- 下載instantclient-basic的RPM包或者ZIP包,
- 64-bit :https://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
- 32-bit:https://www.oracle.com/technetwork/topics/linuxsoft-082809.html
- 可以使用RPM包和ZIP包的安裝方法,兩者皆可
ZIP安裝方法
1.解壓ZIP包並放到新建的目錄中
[root@bigdata01 ~]# mkdir -p /opt/oracle [root@bigdata01 ~]# cd /opt/oracle [root@bigdata01 ~]# unzip instantclient-basic-linux.x64-18.3.0.0.0dbru.zip
2.使用root用戶安裝 libaio 包(主:在一些發行版中這個包稱為libaio1)
[root@bigdata01 ~]# yum install -y libaio
3.如果服務器上沒有其他的Oracle軟件會受到影像,那么可以永久將客戶端添加到運行時鏈接路徑中
[root@bigdata01 ~]# sh -c "echo /app/oracle/instantclient_18_3 > /etc/ld.so.conf.d/oracle-instantclient.conf" [root@bigdata01 ~]# ldconfig
4.或者將環境變量LD_LIBRARY_PATH設置為instantclient版本適當的目錄
[root@bigdata01 ~]# export LD_LIBRARY_PATH=/usr/lib/oracle/18.3/client64/lib:$LD_LIBRARY_PATH
5.創建及時客戶端的應用程序的Oracle配置目錄
[root@bigdata01 ~]# mkdir -p /app/oracle/instantclient_18_3/network/admin
RPM安裝方法
1.使用root用戶安裝下載的RPM包,yum安裝會自動安裝所需要的依賴包,比如libaio
[root@bigdata01 ~]# yum install -y libaio [root@bigdata01 ~]# yum install oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm
2.如果服務器上沒有其他的Oracle軟件會受到影像,那么可以永久將客戶端添加到運行時鏈接路徑中
[root@bigdata01 ~]# sh -c "echo /app/oracle/instantclient_18_3 > /etc/ld.so.conf.d/oracle-instantclient.conf" [root@bigdata01 ~]# ldconfig
3.或者將環境變量LD_LIBRARY_PATH設置為instantclient版本適當的目錄
[root@bigdata01 ~]# export LD_LIBRARY_PATH=/usr/lib/oracle/18.3/client64/lib:$LD_LIBRARY_PATH
4.創建及時客戶端的應用程序的Oracle配置目錄
[root@bigdata01 ~]# mkdir -p /app/oracle/instantclient_18_3/network/admin