[英]pyodbc connection to DB2
我目前正在尝试使用 pyodbc 从 python 程序连接 DB2。 由于驱动程序尚未安装在服务器中,我从 IBM 网站下载了它,但我不确定如何使用 pyodbc 进行连接。
我使用的代码是:
cnx = pyodbc.connect(
'Driver={IBM DB2 ODBC Driver}; '
'Hostname=hostname; '
'Port=50100; '
'Protocol=TCPIP; '
'Database=db_name; '
'CurrentSchema=schema; '
'UID=user_id; '
'PWD = passw;'
)
不确定如何将它与我刚刚下载的驱动程序和 CLI 连接起来,任何提示都会非常有帮助。
这个问题是相关的:
如果你想使用 pyodbc,你需要:
安装/配置供应商 ODBC 驱动程序。
在您的情况下,您需要安装用于 ODBC 和 CLI 的 DB2 数据服务器驱动程序、DB2 数据服务器运行时客户端或 DB2 数据服务器客户端,并在 DB2 客户端中定义到远程 DB2 数据库的连接。
安装/配置系统上安装的 ODBC 驱动程序管理器(例如 UnixODBC)
您必须向驱动程序管理器注册 IBM DB2 客户端 ODBC 驱动程序。 (即在/etc/odbcinst.ini
)。
对于我的系统(具有数据服务器客户端),条目如下所示:
[DB2]
Description = DB2 Driver
Driver = /home/db2inst1/sqllib/lib/libdb2.so
FileUsage = 1
DontDLClose = 1
为您的数据库设置 DSN。
您可以在/etc/odbc.ini
(系统 DSN)或$HOME/.odbc.ini
(用户 DSN)中执行此操作。
我的$HOME/.odbc.ini
看起来像:
[SAMPLE]
Driver = DB2
完成所有这些后,您应该可以使用带有 connect 语句的 pyodbc:
cnx = pyodbc.connect('DSN=SAMPLE; UID=user; PWD=password')
我不确定是否可以在 pyodbc 和 DB2 中使用无 DSN 的连接。
这个 pyodbc 的连接字符串,对我有用:
conexion_str = 'SYSTEM=%s;db2:DSN=%s;UID=%s;PWD=%s;DRIVER=%s;' % (self._SYSTEM, self._DSN, self._UID, self._PWD, self._DRIVER)
self._cnn = pyodbc.connect(conexion_str)
我今天在 Conda 环境中遇到了类似的情况。 这篇文章帮助我推进驱动程序配置。 最初有疑问为什么有两个文件..但后来我花了一些时间才明白。 因此,如果将来有人阅读,我会发布。
即 docker 容器“daskdev/dask”上的 Pyodbc+db2,它与 conda python env 一起提供并手动安装 db2、pyodbc 驱动程序。
conda install pyodbc -y
conda install -c conda-forge ibm_db -y
文件/etc/odbcinst.ini
用于驱动程序配置。
文件/etc/odbc.ini
用于数据库配置。
通过使用 pyodbc,您可以调用内部连接驱动程序的数据库连接。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.