通过 Python 连接到 UCCX 数据库 (Informix)
Posted
技术标签:
【中文标题】通过 Python 连接到 UCCX 数据库 (Informix)【英文标题】:Connection to the UCCX Database (Informix) via Python 【发布时间】:2020-02-12 17:34:22 【问题描述】:我想使用 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')
但我收到以下错误:
错误: ('HY000', '[HY000] [Informix][Informix ODBC 驱动程序][Informix]INFORMIXSERVER 与 DBSERVERNAME 或 DBSERVERALIASES。 (-761) (SQLDriverConnect)')
我该如何解决这个问题?
【问题讨论】:
从表面上看,您将环境变量$INFORMIXSERVER
(或在连接字符串中指定了它的值)设置为不正确的值。服务器名称不应包含破折号,因此可能是连接字符串中的SERVER=my-uccx_uccx
有问题,或者它可能在其他地方。我冒昧地猜测您的服务器是my_uccx_uccx
,但这是一个猜测。了解为实际服务器指定的内容至关重要。
好的,我去看看,变量INFORMIXSERVER
是否对应连接字符串中的SERVER
参数?
这是我没有的信息——连接字符串中的 SERVER 很有可能将 INFORMIXSERVER 作为环境变量匹配,但我不确定。
根据我在问题中发布的指南,无需明确设置INFORMIXSERVER
。也许事情就像你的猜测。我将尝试验证 UCCX/Informix 服务器名称。
哇哇哇!原来服务器名称是my_uccx_uccx
而不是my-uccx_uccx
,现在它可以工作了。如果你把你的评论变成答案,我很乐意接受!
【参考方案1】:
将 cmets 转换为答案。
从表面上看,您已将环境变量 $INFORMIXSERVER
(或在连接字符串中指定其值)设置为不正确的值。服务器名称不应包含破折号,因此可能是连接字符串中的SERVER=my-uccx_uccx
有问题,或者它可能在其他地方。我冒昧地猜测您的服务器是my_uccx_uccx
(下划线而不是破折号)——但这是一个猜测。了解为实际服务器指定的内容至关重要。
变量 INFORMIXSERVER 是否对应连接字符串中的 SERVER 参数?
这是我没有的信息——连接字符串中的SERVER
很有可能与作为环境变量的INFORMIXSERVER
匹配,但我不确定。
考虑到后面的成功,很可能连接字符串中的SERVER
对应环境中的INFORMIXSERVER
。
哇哇哇!原来服务器名称是
my_uccx_uccx
而不是my-uccx_uccx
,现在它可以工作了。
太棒了——我很高兴你已经开始运行了。
【讨论】:
以上是关于通过 Python 连接到 UCCX 数据库 (Informix)的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Python 通过 SSL 连接到远程 PostgreSQL 数据库