通过 pyodbc 从 Python 连接到 Db2 时出错
Error connecting from Python to Db2 through pyodbc
我在 these instructions 之后的 Windows 10 中安装了 Db2 ODBC 驱动程序。我从 bin
文件夹中提取 C:\tools\db2cli\
和 运行 db2cli install -setup
中的驱动程序文件夹。
这似乎工作正常,因为 ODBC 驱动程序已在 Windows:
中注册
但是当我尝试从 Jupyter
连接时,我收到此错误:
server = 'localhost'
database = 'mydb'
username = 'db2inst1'
password = 'abc123'
driver = 'IBM DB2 ODBC DRIVER - C_tools_db2cli'
conn = pyodbc.connect('DRIVER={' + driver +'};SERVER='
+ server + ';DATABASE=' + database + ';UID='
+ username + ';PWD=' + password + ';PROTOCOL=TCPIP;PORT=50000' )
Error Traceback (most recent call
last) in
4 password = 'abc123'
5 driver = 'IBM DB2 ODBC DRIVER - C_tools_db2cli'
----> 6 conn = pyodbc.connect('DRIVER={' + driver +'};SERVER='
7 + server + ';DATABASE=' + database + ';UID='
8 + username + ';PWD=' + password + ';PROTOCOL=TCPIP;PORT=50000' )
Error: ('HY000', '[HY000] [IBM][CLI Driver] SQL1042C An unexpected
system error occurred. SQLSTATE=58004\r\n (-1042) (SQLDriverConnect);
[HY000] [IBM][CLI Driver] SQL1042C An unexpected system error
occurred. SQLSTATE=58004\r\n (-1042)')
我试图找到错误代码以找到解决方案,但没有成功。应该注意什么来解决这个问题?
注意:我将 C:\tools\db2cli\bin
添加到 PATH,但仍然出现相同的错误。
SERVER= 用于已编目的数据库
否则您必须使用:HOSTNAME= 如果您想指定完整的 DSN。
https://cloud.ibm.com/docs/Db2onCloud?topic=Db2onCloud-con_program&locale=fr
此问题是由于 Microsoft Windows 上某些特定配置的 clidriver 缺陷引起的。
您可以解决此问题,方法是确保 PATH 上没有任何其他 Db2 产品(clidriver\bin
除外),然后确保在启动前向 PATH 添加两个额外的目录 python.这些是这些目录的完全限定路径名:
clidriver\bin\icc64
clidriver\bin\amd64.vc12.crt
IBM 应该在某个时候为 IT34327 提供修复程序。
我在 these instructions 之后的 Windows 10 中安装了 Db2 ODBC 驱动程序。我从 bin
文件夹中提取 C:\tools\db2cli\
和 运行 db2cli install -setup
中的驱动程序文件夹。
这似乎工作正常,因为 ODBC 驱动程序已在 Windows:
中注册但是当我尝试从 Jupyter
连接时,我收到此错误:
server = 'localhost'
database = 'mydb'
username = 'db2inst1'
password = 'abc123'
driver = 'IBM DB2 ODBC DRIVER - C_tools_db2cli'
conn = pyodbc.connect('DRIVER={' + driver +'};SERVER='
+ server + ';DATABASE=' + database + ';UID='
+ username + ';PWD=' + password + ';PROTOCOL=TCPIP;PORT=50000' )
Error Traceback (most recent call last) in 4 password = 'abc123' 5 driver = 'IBM DB2 ODBC DRIVER - C_tools_db2cli' ----> 6 conn = pyodbc.connect('DRIVER={' + driver +'};SERVER=' 7 + server + ';DATABASE=' + database + ';UID=' 8 + username + ';PWD=' + password + ';PROTOCOL=TCPIP;PORT=50000' )
Error: ('HY000', '[HY000] [IBM][CLI Driver] SQL1042C An unexpected system error occurred. SQLSTATE=58004\r\n (-1042) (SQLDriverConnect); [HY000] [IBM][CLI Driver] SQL1042C An unexpected system error occurred. SQLSTATE=58004\r\n (-1042)')
我试图找到错误代码以找到解决方案,但没有成功。应该注意什么来解决这个问题?
注意:我将 C:\tools\db2cli\bin
添加到 PATH,但仍然出现相同的错误。
SERVER= 用于已编目的数据库
否则您必须使用:HOSTNAME= 如果您想指定完整的 DSN。 https://cloud.ibm.com/docs/Db2onCloud?topic=Db2onCloud-con_program&locale=fr
此问题是由于 Microsoft Windows 上某些特定配置的 clidriver 缺陷引起的。
您可以解决此问题,方法是确保 PATH 上没有任何其他 Db2 产品(clidriver\bin
除外),然后确保在启动前向 PATH 添加两个额外的目录 python.这些是这些目录的完全限定路径名:
clidriver\bin\icc64
clidriver\bin\amd64.vc12.crt
IBM 应该在某个时候为 IT34327 提供修复程序。