나는 ibm_db
파이썬으로 설치 하고 다음 내용 pip install 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: [email protected]
License: Apache License 2.0
Location: c:\tools\miniconda3\envs\env38\lib\site-packages
miniconda / anaconda에서 제공하는 Python 빌드를 사용하고 있으며 이것이 결정 요인이 될 수 있습니다.
해결 방법은 conda를 사용하여 ibm_db를 로컬로 빌드하고 로컬에서 새로 빌드 된 패키지를 설치하는 것입니다. 다른 해결 방법이 가능할 수 있습니다.
conda 패키지를 빌드하고 설치하는 방법은 여기 와 관련 페이지에 있습니다.
anaconda 2020.11 (4.9.2)이 포함 된 Win10 x64 20H2의 경우 다음 명령을 통해 python ibm_db
모듈을 사용하여 최소한 anaconda 프롬프트에서 Db2 에 연결할 수 있습니다.
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
이제를 실행하면 conda list
출력에 ibm_db
module 이 포함되어야 하며 python (3.8.5)은 최소한 anaconda 프롬프트 창에서 사용될 때 Db2에 연결됩니다.
동일한 SQL1042C 증상이 계속 나타나면 PATH에 다른 Db2 제품 (제외 clidriver\bin
) 이 없는지 확인한 다음 Python을 시작하기 전에 PATH에 두 개의 추가 디렉토리를 추가하십시오. 이는 clidriver\bin\icc64
및 clidriver\bin\amd64.vc12.crt
(또는 clidriver \ bin 아래에 amd64.vc.XX.crt 가있는 모든 것)에 대한 완전한 경로 이름 입니다. 이는 일반적으로 필요하지 않으며 필요한 특정 구성에 대한 clidriver에 결함이 있으며 IBM은 향후 수정 사항을 제공해야합니다 (IT34327).
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다