繁体   English   中英

从Bitnami Wamp Stack访问IBM i DB2

[英]IBM i DB2 access from Bitnami Wamp Stack

编辑: 完全有可能免费执行此操作。这仍然需要许可证,由于我的安装程序捆绑了我的许可证,因此我不确定需要多少许可证或确切需要哪个许可证。

我正在尝试从本地PC连接到IBM i DB2服务器,作为PHP应用程序的一部分。 我正在努力使自己适应本地发展。

我找不到下面提到的“ IBM DB2通用数据库客户机”和/或“ IBM DB2 Connect”的下载。 以前有人做过,可以提供一些见识吗? 只要db2_ *功能可用,我都愿意选择其他解决方案。 我正在使用现有的代码,没有简单/快速的方法在开发和生产之间的连接类型之间进行切换。

这是一个近似重复的问题在这里 ,但同样没有答案。 OP最终放弃了,并使用“ IBMDA400”连接了“ IBM Client Access OLE DB”,但我也找不到它的下载。 我什至不确定此方法是否将启用db2_ *功能。

  • 我正在使用Bitnami Wamp堆栈( https://bitnami.com/stack/wamp
  • 我已经从https://pecl.php.net/package/ibm_db2下载了php_ibm_db2.dll,并将extension=php_ibm_db2.dll添加到了我的php.ini文件中。
  • 我已经通过检查echo phpinfo();的输出确认了php.ini文件echo phpinfo(); 并成功修改它。
  • 我还将php_ibm_db2.dll放在了extension_dir指令指定的位置。 extension_dir = "C:\\Bitnami\\wampstack-5.6.29-1\\php\\ext"

我看到的唯一PHP错误是启动服务器时(仍然成功-尽管没有db2_ *功能)。

[18-Jan-2017 21:08:18 UTC] PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\Bitnami\wampstack-5.6.29-1\php\ext\php_ibm_db2.dll' - The specified module could not be found.

 in Unknown on line 0

[18-Jan-2017 21:08:19 UTC] PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\Bitnami\wampstack-5.6.29-1\php\ext\php_ibm_db2.dll' - The specified module could not be found.

 in Unknown on line 0

但是文件C:\\Bitnami\\wampstack-5.6.29-1\\php\\ext\\php_ibm_db2.dll确实存在,并且具有与目录中其他所有* .dll文件相同的确切权限(自Wamp以来未进行修改)堆栈已安装)。

我已经读到“ IBM DB2通用数据库客户机”和“ IBM DB2 Connect”必须安装在运行PHP的同一台机器上但是却找不到其中任何一个的下载。 我可以找到有关如何安装每个的说明,但没有下载链接。

我已经找到了“ IBM Data Server Client”的下载文件,该文件位于IBM网站的登录背后。 我想知道这是否是我需要用不同名称安装的两个程序之一。 我知道名称一致性不是IBM的最佳属性...:D

我有一些答案。

JDBC和ODBC支持是免费的,并且通常与其他IBM软件一起提供。 这对PHP中的db2_ *函数没有帮助。 如果您的DB2数据库位于IBM i甚至Z / OS上,那么唯一的方法就是使用DB2 Connect。 有几个不同的版本,但是对于工作站开发,您需要DB2 Connect Enterprise Edition。 缺点是他们目前提供的软件包数量最少,只有25个用户,价格约为$ 3,800。 得出的结果是每位用户152美元,但是对于一家只有2个或3个开发人员的小商店,这实际上是不可能的。 曾经他们确实提供了5个许可证包,但截至目前,他们不再提供它。 希望他们将来会。

如果您的DB2数据库在LUW上,那么您需要的是IBM Data Server Client,可以从此处免费下载(尽管需要IBM帐户): https : //www-01.ibm.com/marketing/iwm/iwm/web /reg/pick.do?source=swg-idsc97&lang=zh_CN

一种可能的替代方法是提供IBM i的API,该API会在开发除API之外的应用程序时由本地工作站使用。 但是,API本身的开发仍只能在系统AFAIK上完成。 您还可以设置本地DB2数据库并复制所有文件。 生产和开发之间会有进一步的区别,但可以节省一些钱。

就我个人而言,他们认为使用JDBC或ODBC以外的方法远程连接到IBM i或Z / OS上的DB2数据库的能力是荒唐的,但是对LUW不收取任何费用。 再加上最小的软件包适用于25个用户这一事实,使得它对于中小型企业(IBM i的主要客户)而言更加令人沮丧。

我仅使用“ IBM Data Server Client”来工作。 首先,我从Bitnami (PHP 5.6.30 32位)安装了Wamp堆栈。 然后,我从护照优势区域下载了IBM Data Server Client。 在使它工作之后,我还没有从这里尝试过该版本,因此它也可以工作。 这些步骤基于我从护照优势获得的版本。 它有一个安装向导,所以你可以按照步骤,但这里是对过程的IBM文章。 该文章除了IBM Data Server Client之外,还包括其他软件的安装指导,因此请仅注意适用的指导。 安装后,您必须从Window的Command提示符下配置客户端。 为此,我关注本文。 总而言之,您必须对节点(服务器)进行分类,然后对数据库进行分类。 然后,您重新启动会话并通过连接对其进行测试。 语法如下:

<+ NODENAME +>由您组成。 <+ REMOTE +>是FQDN或IP。 <+ PORT +>是您应该与其连接的<+ REMOTE +>的端口。 通常该端口为446。<+ database_name +>是数据库名称。

 db2 catalog tcpip node <NODENAME> remote <REMOTE> server <PORT> db2 catalog database <database_name> at node <NODENAME> Db2 terminate db2 connect to <database_name> user <user_name> (you will then be prompted for a password) 

完成此操作后,您必须从这里获取IBM_DB2驱动程序的Windows PHP ddl。 我使用的是1.9.9版本。 然后按照php.ini中的extension_dir指令中的指定,将php_ibm_db2.dll文件移动到您的PHP扩展目录中。 然后将此行添加到您的php.ini extension=php_ibm_db2.dll 然后重新启动Apache,您应该能够连接。 成功连接到数据库后,此时我仍然遇到不合格表的问题。 尽管正确设置了库列表,但似乎仍使用用户名而不是提供的库列表。 当我弄清楚这部分时,我将进行更新。

这是我为使其在特定情况下能够正常工作而必须做的粗略概述,而无意成为全面的教程。 如果您的环境不同,则可能需要进行调整。 另外,我不确定php_ibm_db2.dll是否存在其他依赖关系,而这些依赖关系对我来说已经很满意了。 希望这至少可以为某人节省一些时间和金钱。

我解决了图书馆清单的问题; 看到这个答案: https : //stackoverflow.com/a/43193058/967617

暂无
暂无

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

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