Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3和IBM_DB设置问题_Python_Python 3.x_Db2 - Fatal编程技术网

Python 3和IBM_DB设置问题

Python 3和IBM_DB设置问题,python,python-3.x,db2,Python,Python 3.x,Db2,我目前正在使用Windows 10计算机和Python 3.6.3,并已下载并安装了以下要求: 从以下链接: 我已经安装了ODBC驱动程序(IBM DB2 ODBC驱动程序),并在Windows 10计算机上的ODBC数据源管理员界面中对其进行了配置。我还使用相应的设置为SQL Server连接执行了此操作 我遇到的问题是,我收到以下错误: Traceback (most recent call last): File "C:\Users\<Username>\Python\T

我目前正在使用Windows 10计算机和Python 3.6.3,并已下载并安装了以下要求: 从以下链接:

我已经安装了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
回溯(最近一次呼叫最后一次):
文件“C:\Users\\Python\Test IBM Connection.py”,第6行,在
ibm_db.connect(“,”,“)
异常:[IBM][CLI驱动程序]SQL1531N由于名称错误,连接失败
在这两个目录中都找不到使用DSN连接字符串关键字指定的
db2dsdriver.cfg配置文件或db2cli.ini配置文件。
在连接字符串“”中指定的数据源名称。
SQLCODE=-1531
一、 当然,谷歌搜索了这个问题,但毫无结果。我不熟悉IBM_DB和it需求,需要帮助配置DSN以使其正常工作

我还尝试运行db2dsdcfgill,但没有成功,请参见此处:

我不确定这些文件中需要哪些信息,它们需要在哪里,以及如何注册它们,以便系统能够看到它们

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

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

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

连接字符串:

ibm.connect("<DSN>", "<Username>","<Password>")
ibm.connect(“,”,“”)
ODBC版本为11.01.00.1527


我正在连接一个IBM iSeries数据库-它运行在system I上,运行的是7.2版

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

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

如果必须使用dsn,请根据您的环境和要求选择用户dsn或系统dsn

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

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

在线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当前为空。 您可能需要额外的参数来连接DB2fori。我的例子是DB2forLUW。您还需要相关许可证。将下面的示例保存到批处理文件中,更改值以适合您的环境,并在开发或测试环境中排练

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% 

编辑该问题以显示connect语句的代码行,并说明安装了IBM DB2 ODBC驱动程序的哪个版本+fixpack,以及是否连接到本地数据库、远程数据库(如果是远程数据库,则是哪个操作系统运行DB2服务器)添加了信息。您选择使用connect的简短语法(即通过DSN),那么您是否使用Windows odbcad32工具验证了您可以成功连接到该DSN?换句话说,首先要证明您的ODBC连接在python之外工作。如果您在odbcad32中工作,那么副作用将是将相关条目添加到Db2客户机配置文件中(例如db2cli.ini或db2dsdriver.cfg)。您还可以选择python中连接的长格式(指定目标主机名或ip地址、端口号、数据库名称等).mao当我检查是否可以连接ODBC连接时,我收到一个错误,说明在db2dsdriver.cfg或db2cli.ini中都找不到DSN-这些都是我在python中遇到的错误-我需要知道如何配置这些文件。IBM文档不是很有见地,我的其他帖子也有在网上找到的不是