gpt4 book ai didi

python-3.x - django.db.utils.DatabaseError : Error while trying to retrieve text for error ORA-01804

转载 作者:行者123 更新时间:2023-12-04 19:40:16 53 4
gpt4 key购买 nike

Q1。我们使用的是什么版本?
答。

    Python 3.6.12 

OS : CentOS 7 64-bit

DB : Oracle 18c

Django 2.2

cx_Oracle : 8.1.0
Q2。描述问题
答。使用“python3 manage.py runserver”运行服务器时
应用程序能够联系 Oracle DB 并显示 Django 管理页面,并且登录也有效。
但是,当我们通过安全 SSL 端口使用基于 Apache (HTTPD) 的 URL 访问应用程序时,我们确实看到了 Django 页面和管理页面,但登录到管理页面并出现内部服务器错误。
在日志中,我们看到
"django.db.utils.DatabaseError: Error while trying to retrieve text for error ORA-01804"
cx_oracle 否则能够正确连接到数据库,另一个应用程序也在同一个 httpd 代理后面使用同一个数据库并且工作正常
Q3。显示安装 Oracle 客户端库的目录列表(例如 Instant Client 目录)。它是 64 位还是 32 位?
答。 64 位
Q4。显示 PATH 环境变量(在 Windows 上)或 LD_LIBRARY_PATH(在 Linux 上)设置为什么?
    LD_LIBRARY_PATH=/srv/vol/db/oracle/product/18.0.0/dbhome_1/lib:/lib:/usr/lib
PATH=$ORACLE_HOME/bin:/srv/vol/db/oracle/product/18.0.0/dbhome_1/lib:$PATH
Q5。显示任何 Oracle 环境变量集(例如 ORACLE_HOME、ORACLE_BASE)。
    ORACLE_HOME=/srv/vol/db/oracle/product/18.0.0/dbhome_1
TNS_ADMIN=$ORACLE_HOME/network/admin
NLS_LANG=AMERICAN_AMERICA.AL32UTF8
ORACLE_BASE=/srv/vol/db/oracle
CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/lib
非常感谢任何建议/帮助。
谢谢

最佳答案

我发现了问题
所以我刚刚从/etc/sysconfig/httpd 中删除了所有变量声明并检查,应用程序仍然能够访问 lib 文件,所以这些现在是多余的。
然后为 os 用户撤消之前在 .localsh 和 .localrc 文件中完成的所有变量声明。从头开始,一步一步看它在哪里中断。
所以现在,cx_Oracle 正在寻找错误目录中的 lib 文件
$ORACLE_HOME/client_1/lib
代替
$ORACLE_HOME/lib

DPI-1047: Cannot locate a 64-bit Oracle Client library: "$ORACLE_HOME/client_1/lib/libclntsh.so: cannot open shared object file: No such file or directory". See https://cx-oracle.readthedocs.io/en/latest/user_guide/installation.html for help
我在 dbhome_1 中没有任何名为“client_1”的子文件夹
所以我刚刚创建了一个指向 dbhome_1 的符号链接(symbolic link) client_1 (仍然不确定,但至少它有效:))
所以,现在,这个错误消失了,但现在又出现了 ORA-01804。 😑
我在某处读到,可以通过添加“libociei.so”来修复此错误,但我的实例上没有,所以我使用以下命令生成它:-
mkdir -p $ORACLE_HOME/rdbms/install/instantclient/light
cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk igenliboci
然后我把这个 libociei.so 文件从
$ORACLE_HOME/instantclient 到 $ORACLE_HOME/lib
现在出现了一个新错误(所以..进步😉):
ORA-12546 - TNS 权限被拒绝。
这很容易解决😀
我用这个命令来解决这个问题:-
setsebool -P httpd_can_network_connect on
而且……仅此而已!有效。

关于python-3.x - django.db.utils.DatabaseError : Error while trying to retrieve text for error ORA-01804,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66203715/

53 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com