如果使用Pythono的ibm-db库,则3.1以上版本会自动下载odbc的驱动,本文提供只使用odbc连接db2的方式。
1、下载驱动
下载地址:linuxx64_odbc_cli.tar.gz 解压到python的sit-packages目录下。
curl https://public.dhe.ibm.com/ibmdl/export/pub/software/data/db2/drivers/odbc_cli/linuxx64_odbc_cli.tar.gz | tar -zx -C /usr/python/lib/python3.11/site-packages
2、配置/etc/odbc.ini
[DB2]
Description = IBM DB2 Adapter
Driver = /usr/python/lib/python3.11/site-packages/clidriver/lib/libdb2.so
FileUsage = 1
DontDLClose = 1
CPTimeout = 1000
CPTimeToLive = 100
Threading = 2
Pooling = Yes
配置环境变量 export ODBCINI=/etc/odbc.ini
3、使用Python的pyodbc连接db2数据库:
import pyodbc
# 数据库信息示例
ip = '192.168.236.171'
port = 50001
user = 'db2inst1'
password = 'db2inst1'
database = 'ss105'
# 创建连接
DRIVER = 'DB2'
conn_str = "DRIVER=%s;DATABASE=%s;HOSTNAME=%s;PORT=%d;PROTOCOL=TCPIP;UID=%s;PWD=%s;" % (DRIVER, database, ip, port, user, password)
conn = pyodbc.connect(conn_str)
cursor = conn.cursor()
cursor.execute("select application_id(),mon_get_application_handle() from sysibm.dual")
print(cursor.fetchall())
cursor.close()
conn.close()