python - 无法从 Python 连接到 ODBC 错误:找不到文件 (0) (SQLDriverConnect)")
问题描述
我正在尝试通过pyodbc
驱动程序在 Linux 服务器上使用 Python 连接到 oracle 数据库。但我得到以下错误:
File "Query.py", line 20, in <module>
connection = pyodbc.connect('Driver=/usr/lib/oracle/18.3/client64/lib/libsqo ra.so.18.1};DBQ=bnpporacleb.chwk19l2i1ki.ap-southeast-1.rds.amazonaws.com/ORCL;U id=admin;Pwd=12341234')
pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib '/usr/ lib/oracle/18.3/client64/lib/libsqora.so.18.1}' : file not found (0) (SQLDriverC onnect)")
我也尝试在odbcinst.ini
:
[MyOracle]
Description=Oracle Unicode driver
Driver=/usr/lib/oracle/18.3/client64/lib/libsqora.so.18.1
UsageCount=1
但出现错误:
File "Query.py", line 19, in <module>
connection = pyodbc.connect('Driver=MyOracle};DBQ=xxxxx/ORCL;Uid=admin;Pwd=12341234')
pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'MyOracle}' : file not found (0) (SQLDriverConnect)")
FileUsage=1
下面的 dltest 命令工作正常。
[root@ip-172-31-33-62 lib]# dltest /usr/lib/oracle/18.3/client64/lib/libsqora.so.18.1
SUCCESS: Loaded /usr/lib/oracle/18.3/client64/lib/libsqora.so.18.1
此外,下面的命令给出了提到的输出:
[root@ip-172-31-33-62 etc]# python -c "import pyodbc; print(pyodbc.connect('DRIVER=MyOracle;DBQ=XXXXX/ORCL;UID=admin;PWD=12341234'))"
<pyodbc.Connection object at 0x7fba233664e0>
解决方案
ls -l /usr/lib/oracle/18.3/client64/lib/libsqora.so.18.1
该文件有什么权限?
您的 Python 进程是否以可以读取和/或执行它的用户身份运行?
推荐阅读
- rollup - 更改 rollup-plugin-postcss 为某些文件生成的 CSS 类名
- javascript - 在我的情况下,如何解决“超出最大更新深度”?
- pandas - 如何在连接两个单独的数据帧时在熊猫数据帧中保留多索引
- ms-access - MS ACCESS 中的组合框显示所有可能的结果
- vue.js - Vuejs3 扩展另一个组件或方法
- typescript - 打字稿:类型 'Uint8Array' 缺少来自类型 'number[]' 的以下属性:
- java - android,如何判断5G是NSA还是SA?
- bash - 在 Jenkins Pipeline 中执行 shell 脚本时出现 Groovy 错误
- flutter - 我尝试了有关 gradle 的所有内容,也正在浏览不同的应用程序并尝试运行它,但万一显示此错误正在使用颤振
- rest-assured - 如何放心地使用“查找”来搜索这个嵌套数组结构?