[英]SQLCODE=-30081 Cannot connect to IBM DB2 database with python
[英]Cannot connect to Db2 from python
我使用pip install ibm_db
ibm_db
創建了一個包含以下內容的db2dsdriver.cfg
文件:
<configuration>
<dsncollection>
<dsn alias="BANK0002" name="BANK0002" host="localhost" port="50000"/>
</dsncollection>
<databases>
<database name="BANK0002" host="BANK0002" port="50000"/>
</databases>
</configuration>
運行此命令行,我可以連接數據庫並允許我運行 select 語句而沒有問題:
db2cli execsql -user DB2INST1 -passwd xxxxx -dsn bank0002
問題是我無法從 Python 連接:
conn = ibm_db.connect("UID=DB2INST1;PWD=xxxxxx;DATABASE=bank0002;
HOSTNAME=localhost;PORT=50000;PROTOCOL=TCPIP;", "", "")
拋出:
SQLCODE=-30082n: [IBM][CLI Driver] SQL30082N 安全處理失敗,原因為“17”(“UNSUPPORTED FUNCTION”)。 SQLSTATE=08001
這是什么問題以及如何解決?
python -V
Python 3.8.5
pip show ibm_db
Name: ibm-db
Version: 3.0.2
Summary: Python DBI driver for DB2 (LUW, zOS, i5) and IDS
Home-page: http://pypi.python.org/pypi/ibm_db/
Author: IBM Application Development Team
Author-email: opendev@us.ibm.com
License: Apache License 2.0
Location: c:\tools\miniconda3\envs\env38\lib\site-packages
您正在使用 miniconda / anaconda 提供的 python 構建,這可能是決定因素。
一種解決方法是使用 conda 在本地構建 ibm_db 並從本地安裝新構建的 package。 其他解決方法可能是可能的。
構建 conda 包和安裝它們的說明在這里和相關頁面。
For Win10 x64 20H2 with anaconda 2020.11 (4.9.2) the following commands let me use python ibm_db
module to connect to Db2, at least from the anaconda prompt.
conda install conda-build git anaconda-clean m2-patch
conda update conda conda-build git m2-patch
cd /d %userprofile%
ibm_db
存在,則重命名或刪除它。conda skeleton pypi ibm_db
conda-build ibm_db
conda install --use-local ibm_db
If you now run conda list
, it's output should contain ibm_db
module, and the python (3.8.5) will connect to Db2, at least when used in the anaconda prompt window.
如果您繼續遇到相同的 SQL1042C 症狀,請確認 PATH 上沒有其他 Db2 產品(除了clidriver\bin
),然后在啟動 python 之前將兩個附加目錄添加到 PATH。 這些是clidriver\bin\icc64
和clidriver\bin\amd64.vc12.crt
(或任何 amd64.vc.XX.crt 存在於 clidriver\bin 下)的完全限定路徑名。 這通常不需要,某些特定配置的 clidriver 存在缺陷,因此需要這樣做,IBM 應在未來某個時間提供修復 (IT34327)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.