ODBC连接失败DB2与PHP实例5.3.6-13ubuntu3.6

问题描述:

我已经安装了DB2 Express-C V9.7,unixODBC php5-odbc和iSerie-5.4.0-1.6驱动程序的Linux,但是当我尝试连接到DB2服务器PHP返回此消息:ODBC连接失败DB2与PHP实例5.3.6-13ubuntu3.6

[unixODBC][IBM][iSeries Access ODBC Driver]Communication link failure. comm rc=10061 - 
CWBCO1049 - The iSeries server application is not started, SQL state 08004 in SQLConnect 

我使用tcpdump是PHP尝试在端口8741连接50000

netstat的,而不是-anp告诉注意到我的DB2监听端口50000

这是我的配置文件

/etc/odbcinst.ini:

[DB2] 
Description  = ODBC for DB2 
Driver   = /opt/ibm/iSeriesAccess/lib/libcwbodbc.so 
Setup   = /opt/ibm/iSeriesAccess/lib/libcwbodbcs.so 
FileUsage    = 1 
Threading    = 2 
DontDLClose    = 1 
UsageCount    = 1 

/etc/odbc.ini

[local_db2] 
Driver = DB2 
System = localhost 
User = db2inst1 
Password = MySecretPassword 
Port = 50000 
Database = dbname 
Option = 1 

而且我的PHP脚本:

$dsn = "local_db2"; 
$user = "db2inst1"; 
$passwd = "MySecretPassword"; 
$conn = odbc_connect($dsn,$user,$passwd); 

echo "votre id de connexion est : $conn"; 

if ($conn <= 0) { 
echo "\nErreur\n"; 
} 
    else { echo "\nSuccès\n"; 
} 

odbc_close($conn); 

现在我可以连接到DB2服务器。我在/ etc/services中更改了db2inst1的端口,但服务器不响应我。

我的错误消息是(后一段时间): [了unixODBC] [IBM] [System i的访问ODBC驱动程序]通信链接失败。 COMM RC = 8405 - CWBCO1047 - 在IBM i的服务器应用程序断开连接,SQL状态08S01 SQLCONNECT中

结论:

的第一个问题是驱动程序,这是不是我的配置正确的驱动程序的iSeries,所以我已经安装了包括Linux驱动程序的DB2 ODBC CLI driver

第二个问题是odbc配置。

我的工作/etc/odbc.ini配置:

[DBNAME] 
Driver=DB2 

我的工作/etc/odbcinst.ini配置:

[ODBC] 
Trace  = yes 
Tracefile  = /tmp/odbc.log 

[DB2] 
Description  = DB2 Driver 
Driver  = /opt/ibm/db2/V9.7/lib32/libdb2.so 
FileUsage  = 1 
DontDLClose  = 1 

你可以得到约在/ tmp目录的ODBC连接的详细信息/odbc.log。 我也使用了测试odbc连接的isql程序。 此程序是在unixodbc linux软件包中。

感谢您的信息

Nicolas。

这可能是数据库主机服务器尚未启动。数据库主机服务器接受到数据库的TCP/IP连接。

您可以使用命令WRKACTJOB SBSD(QSERVER) JOB(QZDASRVSD)检查它当前是否处于活动状态。

启动它的命令是:STRHOSTSVR SERVER(*DATABASE)

默认端口是8471。

+0

我是DB2的新手,但我的系统上没有wrkactjob和strhostsvr实用程序。 我认为它是OS/400命令,但我在我的ubuntu Linux上运行DB2 – 2012-03-14 09:53:50

+1

如果您在Linux上运行DB2,为什么要使用iSeries Access DB2驱动程序?您应该使用标准的DB2驱动程序,例如[DB2 ODBC CLI驱动程序](http://www-01.ibm.com/support/docview.wss?uid=swg21418043)。 iSeries驱动程序仅用于连接到DB2/400。 – jamesallman 2012-03-14 10:47:38

+0

现在没关系,谢谢你的信息 – 2012-03-14 14:44:28