我已經安裝了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。
我是DB2的新手,但我的系統上沒有wrkactjob和strhostsvr實用程序。 我認爲它是OS/400命令,但我在我的ubuntu Linux上運行DB2 – 2012-03-14 09:53:50
如果您在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
現在沒關係,謝謝你的信息 – 2012-03-14 14:44:28