繁体   English   中英

Python 3和IBM_DB设置问题

[英]Python 3 and IBM_DB Setup Issues

我当前正在使用Windows 10计算机和Python 3.6.3,并已下载并安装了此处列出的要求: https : //www.ibm.com/support/knowledgecenter/zh-CN/SSSNY3_10.1.0/com.ibm.swg.im来自以下链接的.dbclient.python.doc / doc / t0054367.html

https://www.ibm.com/support/knowledgecenter/zh-CN/SSSNY3_10.1.0/com.ibm.swg.im.dbclient.python.doc/doc/r0054697.html

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

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

Traceback (most recent call last):
  File "C:\Users\<Username>\Python\Test IBM Connection.py", line 6, in <module>
    ibm_db.connect("<DSN>","<Username>","<Password>")
Exception: [IBM][CLI Driver] SQL1531N  The connection failed because the name
specified with the DSN connection string keyword could not be found in either 
the db2dsdriver.cfg configuration file or the db2cli.ini configuration file.  
Data source name specified in the connection string: "<DSN>".
 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("<DSN>", "<Username>","<Password>")

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% 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM