pyodbc到DB2的连接

2024-05-14 20:49:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在尝试使用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连接起来,任何提示都会非常有用。

这个问题是相关的:

DB2 connection through pyodbc and pandas.io.sql in Unix Box with non-root


Tags: 代码程序服务器网站portdriverconnect驱动程序
2条回答

如果要使用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

所有这些就绪后,您应该能够将pyodbc与connect语句一起使用:

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)

相关问题 更多 >

    热门问题