python ibm db_Python 3和IBM_DB设置问题

我已经安装了ODBC驱动程序(IBM DB2 ODBC驱动程序),并在Windows 10计算机上的ODBC数据源管理员界面中对其进行了配置。我还使用适当的设置对SQL Server连接进行了此操作。

我遇到的问题是我收到以下错误:

Traceback(most recent call last):File"C:\Users\\Python\Test IBM Connection.py",line6,inibm_db.connect("","","")Exception:[IBM][CLIDriver]SQL1531NTheconnection failed because the name

specifiedwiththe DSN connection string keyword couldnotbe foundineither

the db2dsdriver.cfg configuration fileorthe db2cli.ini configuration file.Datasource name specifiedinthe connection string:"".SQLCODE=-1531

我当然用谷歌搜索这个问题都没有用。我是IBM_DB的新手,它要求并且需要帮助来配置DSN以使其正常工作。

我还尝试运行db2dsdcfgfill-但未成功,请参见此处:https://www.ibm.com/support/knowledgecenter/zh/SSEPGG_9.5.0/com.ibm.swg.im.dbclient.config.doc/doc/r0054557.html

我不确定这些文件中需要包含什么信息,它们应该位于何处以及如何注册它们,以便系统能够看到它们。

我已经能够连接和查询SQL Server,但无法连接到IBM iSeries AS400系统。

我已经研究了该问题的许多部分,但没有找到解决该问题的任何方法。

根据要求,我添加了以下信息:

连接字符串:

ibm.connect("","","")

ODBC版本为11.01.00.1527

我正在连接到IBM iSeries数据库-它在系统i上运行,并且正在运行7.2版

解决方案

此答案显示了一些有关如何使用db2cli.exe配置db2dsdriver.cfg的示例。

请记住,您不需要在python中使用DSN来连接到Db2数据库,您可以使用长格式的连接来指定连接的所有详细信息。当多个不同的本地应用程序使用DSN(因此配置仅在一个地方)时,或者当您的python脚本需要在可能使用不同DSN详细信息而无需更改代码且DSN所在的多个环境中运行时,使用DSN很有用。处于另一个组的控制之下,或者DSN参数是特定于环境的。因此,选择适合您企业的最佳方法。

如果必须使用DSN,请根据您的环境和要求选择user-dsn或system-dsn。

选择要用于Db2客户端的配置文件格式。db2cli.ini是一个旧的旧格式Windows样式INI文件,带有x = y元组和[section]块为纯文本。您可以使用文本编辑器或Db2的命令行命令来操纵其内容。这种旧格式具有足够的在线文档,并且已经存在数十年了,因此我将不对此进行扩展。

db2dsdriver.cfg文件是较新的格式。这是一个XML文件。您可以使用Db2命令(在Windows上为db2cli.exe)或通过文本编辑器(或XML编辑器)对其进行编辑。我将在当前支持的Db2客户端的新环境中使用这种格式。作为其XML,有一个验证步骤(db2cli validate ...)。

在线Db2知识中心提供了所有这些信息,尽管您确实需要花时间研究许多页面并仔细排练和测试。

以下是批处理文件脚本的一些示例行,您可以在MS-windows的ADMINISTRATOR db2cmd.exe窗口中运行这些示例行,它们显示了如何使用db2cli.exe工具来填充db2dsdriver.cfg。您必须至少具有本地管理员权限才能运行这些命令。

首先设置一些变量以匹配您的特定环境,端口号,Db2服务器的主机名,凭据和DSN以及远程数据库名称(这两个可以是不同的值)。然后运行db2cli,以使用先前设置的变量将条目写入db2dsdriver.cfg,最后运行db2cli,以尝试连接到DSN。这些是简单的示例,在实际情况下,您通常需要向数据库部分或DSN部分添加许多其他参数(不同平台上的Db2支持许多可以在连接时设置的选项)。您可以通过db2cli writecfg add语法来设置其中任何一个,尽管IBM的文档在这方面没有多大帮助。这些示例假定您的db2dsdriver.cfg当前为空。您可能需要其他参数才能连接到i的Db2。我的示例适用于LUW的Db2。您还需要相关的许可证。将下面的示例保存到批处理文件中,更改值以适合您的环境,然后在开发或测试环境中进行练习。

set db2_port=port_number_on_which_db2_is_listening

set db2_server=ip_address_or_fqdn_of_db2_server

set db2_id_to_connect=myusername

set db2_id_pwd=password

set dsn_name=sample

set db_name=sample

db2cli writecfg add-dsn%dsn_name%-database%db_name%-host%db2_server%-port%db2_port%db2cli writecfg add-database%db_name%-host%db2_server%-port%db2_port%db2cli validate-dsn%dsn_name%-connect-user%db2_id_to_connect%-passwd%db2_id_pwd%

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值