通过 Python 连接到 UCCX 数据库 (Informix)

Connection to the UCCX Database (Informix) via Python

我想使用 Python 脚本从 Cisco UCCX 数据库 (Informix) 中提取数据。

按照 this guide 中所述安装 Informix Client SDK 和 pyodbc 后,我 运行 以下连接:

pyodbc.connect('SERVICE=1504;PROTOCOL=onsoctcp;CLIENT_LOCALE=en_US.UTF8;DB_LOCALE=en_US.UTF8;DRIVER={IBM INFORMIX ODBC DRIVER (64-bit)};UID=uccxhruser;PWD=my_pwd;DATABASE=db_cra;HOST=my-uccx;SERVER=my-uccx_uccx')

但我收到以下错误:

Error: ('HY000', '[HY000] [Informix][Informix ODBC Driver][Informix]INFORMIXSERVER does not match either DBSERVERNAME or DBSERVERALIASES. (-761) (SQLDriverConnect)')

我该如何解决这个问题?

正在将评论转化为答案。

从表面上看,您将环境变量 $INFORMIXSERVER(或在连接字符串中指定的值)设置为不正确的值。服务器名称不应包含破折号,因此可能是连接字符串中的 SERVER=my-uccx_uccx 有问题,或者可能在其他地方。我猜测您的服务器是 my_uccx_uccx(下划线而不是破折号)——但这是一个猜测。了解为实际服务器指定的内容至关重要。

Does the variable INFORMIXSERVER correspond to the SERVER param in the connection string?

这是我没有的信息 — 连接字符串中的 SERVER 很有可能匹配 INFORMIXSERVER 作为环境变量,但我不确定。

鉴于后面的成功,很可能连接字符串中的SERVER对应环境中的INFORMIXSERVER

Whooooaaaa! Turned out that the server name was my_uccx_uccx instead of my-uccx_uccx and now it works.

太好了 - 很高兴你起床 运行。