Я установил DB2 Express-C V9.7, unixODBC php5-odbc и iSerie-5.4.0-1.6 Драйверы для Linux, но когда я пытаюсь подключиться к серверу DB2, php возвращает мне это сообщение:
[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.Я изменил порт db2inst1 в / etc / services, но сервер не отвечает мне.
Мое сообщение об ошибке (через некоторое время): [unixODBC] [IBM] [Драйвер ODBC для System i Access] Ошибка связи.comm rc = 8405 - CWBCO1047 - Серверное приложение IBM i отключило соединение, состояние SQL 08S01 в SQLConnect
Вывод:
Первая проблема заключалась в том, что драйверы для iSeries не были подходящими драйверами длямоя конфигурация, поэтому я установил DB2 ODBC CLI драйвер , который включает в себя драйверы для Linux.
Второй проблемой была конфигурация 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
Подробнее о подключении odbc можно узнать в /tmp/odbc.log.Я тоже использовал программу isql, которая тестирует соединение odbc.Эта программа была в пакете unixodbc linux.
Спасибо за вашу информацию
Николас.