Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Подключение к DB2 базе из windows
|
|||
|---|---|---|---|
|
#18+
Добрый вечер, Разобрался как собрать либу PDO IBM ( http://pecl.php.net/package/PDO_IBM) на лиуксе, все отлично завелось вот такой код отрабатывал без проблем Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Но при попытке установить подобное на виндовый сервак столкнулся с тем что скомпилировать расширение PECL под винду то еще шаманство. Но следуя рекомендациям на сайте IBM установил это http://www.zend.com/en/products/server-ce/downloads (В процессе установки оно автоматом доствило IBM DB2 Runtime Client) Там модули pdo_ibm и ibm_db2 включаются в пару кликов. И все было бы прекрасно но вот код приведенный выше возвращает такую ошибку SQLSTATE=08001, SQLDriverConnect: -1032 [IBM][CLI Driver] SQL1032N No start database manager command was issued. SQLSTATE=57019 Помогите разобраться, уже и не знаю в какую сторону копать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2012, 00:26 |
|
||
|
Подключение к DB2 базе из windows
|
|||
|---|---|---|---|
|
#18+
us2h, Из сообщения следует, что у вас экземпляр ДБ2 не запущен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2012, 20:32 |
|
||
|
Подключение к DB2 базе из windows
|
|||
|---|---|---|---|
|
#18+
База на удаленном сервере, и она там запущена. С той же винды я без проблем подключаюсь к ней через Data Studio и из пхп на линуксе. Какой же экземпляр ей нужен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2012, 23:05 |
|
||
|
Подключение к DB2 базе из windows
|
|||
|---|---|---|---|
|
#18+
У меня были похожие проблемы ввиду того, что на винде дефолтное имя инстанса DB2, а на линухе db2inst1. Кажется, что здесь не тот случай - для "моей" ошибки требуется неправильно закаталогизировать, а тут вроде бы идёт мимо каталога. Но, по первому попавшемуся линку, чтобы коннектиться, не обращаясь к каталогу или .ini, в connection string надо указывать больше подробностей: The DSN can be any of the following: a) Data source setup using db2cli.ini or odbc.ini b) Catalogued database name i.e. database alias in the DB2 client catalog c) Complete connection string in the following format: DRIVER={IBM DB2 ODBC DRIVER};DATABASE=database;HOSTNAME=hostname;PORT=port;PROTOCOL=TCPIP;UID=username;PWD=password; where the parameters represent the following values: чего мы не наблюдаем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2012, 00:13 |
|
||
|
Подключение к DB2 базе из windows
|
|||
|---|---|---|---|
|
#18+
Есть прогресс, не знаю положительный или отрицательный :) Поменял конекшн стринг на Код: php 1. теперь долго думает а потом выдает SQLSTATE=08001, SQLDriverConnect: -30081 [IBM][CLI Driver] SQL30081N A communication error has been detected. Communication protocol being used: "TCP/IP". Communication API being used: "SOCKETS". Location where the error was detected: "XXX.XXX.XXX.XXX". Communication function detecting the error: "connect". Protocol specific error code(s): "10060", "*", "*". SQLSTATE=08001 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2012, 00:49 |
|
||
|
Подключение к DB2 базе из windows
|
|||
|---|---|---|---|
|
#18+
Содержимое файла ODBCINST.INI [ODBC 32 bit Drivers] IBM DB2 ODBC DRIVER - DB2COPY1 (32 bit)=Installed IBM DB2 ODBC DRIVER (32 bit)=Installed [IBM DB2 ODBC DRIVER - DB2COPY1 (32 bit)] Driver=C:\PROGRA~2\IBM\SQLLIB\BIN\DB2CLI.DLL Setup=C:\PROGRA~2\IBM\SQLLIB\BIN\DB2ODBC.DLL 32Bit=1 [IBM DB2 ODBC DRIVER (32 bit)] Driver=C:\Program Files (x86)\IBM\SQLLIB\BIN\DB2CLI.DLL Setup=C:\Program Files (x86)\IBM\SQLLIB\BIN\DB2ODBC.DLL 32Bit=1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2012, 01:13 |
|
||
|
Подключение к DB2 базе из windows
|
|||
|---|---|---|---|
|
#18+
Хотя вот эта ошибка SQLSTATE=08001, SQLDriverConnect: -30081 [IBM][CLI Driver] SQL30081N A communication error has been detected. Communication protocol being used: "TCP/IP". Communication API being used: "SOCKETS". Location where the error was detected: "XXX.XXX.XXX.XXX". Communication function detecting the error: "connect". Protocol specific error code(s): "10060", "*", "*". SQLSTATE=08001 возникает скорее всего из-за проблем с фаерволом, сейчас попробовал на другой машине, этой ошибки нет но выдает интернал сервер ерор ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2012, 02:42 |
|
||
|
Подключение к DB2 базе из windows
|
|||
|---|---|---|---|
|
#18+
У меня есть подозрение что оно пытается использовать pdo_ibm а не ibm_db2. Когда выключил pdo_ibm и оставил только ibm_db2 стало писать could not find driver на линуксе у меня работало помоему с либой ibm_db2 (судя по версиям) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2012, 02:54 |
|
||
|
Подключение к DB2 базе из windows
|
|||
|---|---|---|---|
|
#18+
us2h, Более-менее "свежие" бинарные версии драйвера ibm_db2 для Windows есть здесь Technology Explorer for IBM DB2 Работа через PDO - это правильный путь. internal server error - нужно смотреть в логи апача, какая ошибка или ошибки там пишутся. Рекомендую проверить выполняется ли подключение к БД с машины на которой установлен PHP из командной строки DB2. Для этого нужно запустить командную строку DB2 (db2cmd.exe), один раз каталогизировать удаленную БД (две команды) и потом выполнить к ней подключение. Пример: Код: plsql 1. 2. 3. 4. 5. Если все команды отработают без ошибок, нужно будет искать ошибки уже по логам апача. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2012, 10:39 |
|
||
|
Подключение к DB2 базе из windows
|
|||
|---|---|---|---|
|
#18+
us2h, Попробуй telnet'ом на порт 50000 с PHP'шной машины на DB2'шную зайти. Вопросы с firewall'ом отпадут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2012, 11:21 |
|
||
|
Подключение к DB2 базе из windows
|
|||
|---|---|---|---|
|
#18+
1) Проблему с фаерволом я уже отбросил 2) Подключение с машины с пхп есть, я подключаюсь оттуда через Data Studio 3) Апач ничего не пишет в лог, специально сделал виртуал хост что бы был отдельный лог, он пустой создает и все, ничего туда по этому поводу не пишет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2012, 13:12 |
|
||
|
Подключение к DB2 базе из windows
|
|||
|---|---|---|---|
|
#18+
us2h, PHP работает через платформенные библиотеки клиента DB2. DataStudio работает через Java JDBC Driver, который работает независимо от клиента DB2 (при использовании Type4 соединения). В общем случае работа DataStudio доказывает только факт, что база данных доступна с этой машины. Проверка соединения с командной строки db2 задействует те же библиотеки клиента, что и PHP. Т.е. нормальное подключение с командной строки доказывает что работает клиент db2. А дальше нужно проверять совпадение разрядности(32-бит, 64-бит) и способа компиляции (VC6, VC9), (ThreadSafe, NotThreadSafe) библиотек Apache, PHP, драйвера DB2 и клиента DB2. Разрядность должна четко совпадать. Настройки компиляции PHP и драйвера ibm_db2 должны так же четко совпадать. Если Apache HTTP Server в логи ничего не пишет, можно попробовать выполнить скрипт php из командной строки. В командной строке иногда проще увидеть ошибку. ОС может сообщить о нехватке DLL, или отсутствии в этой DLL нужной функции (что говорит о несовпадении версии например). Может VC Runtime нужный отсутствует или не той версии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2012, 13:39 |
|
||
|
Подключение к DB2 базе из windows
|
|||
|---|---|---|---|
|
#18+
Евгений Хабаров, Спасибо за такой развернутый ответ! Действительно, попробую из консоли запустить/приконектится, авось на что то ругнется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2012, 16:08 |
|
||
|
Подключение к DB2 базе из windows
|
|||
|---|---|---|---|
|
#18+
Евгений Хабаров, Итак я попробовал, вот что имеем C:\Documents and Settings\us2h>db2 "CATALOG TCPIP NODE TCPW0001 REMOTE XXX.XXX.XXX.XXX SERVER 50000" DB20000I The CATALOG TCPIP NODE command completed successfully. DB21056W Directory changes may not be effective until the directory cache is refreshed. C:\Documents and Settings\us2h>db2 "CATALOG DATABASE TEST001 AT NODE TCPW0001" DB20000I The CATALOG DATABASE command completed successfully. DB21056W Directory changes may not be effective until the directory cache is refreshed. C:\Documents and Settings\us2h>db2 "CONNECT TO TEST001 USER db2inst1 Enter current password for db2inst1: Database Connection Information Database server = DB2/LINUXX8664 1.0 SQL authorization ID = DB2INST1 Local database alias = TEST001 C:\Documents and Settings\us2h>db2 "SELECT CURRENT DATE FROM SYSIBM.SYSDUMMY1" SQL0805N Package "NULLID.SQLC2G15 0X41414141414C4959" was not found. SQLSTATE=51002 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2012, 13:17 |
|
||
|
Подключение к DB2 базе из windows
|
|||
|---|---|---|---|
|
#18+
Странное дело, зашел в Default DB2 database client interface wizard проклацал, что то выбрал, не особо понял что. И предыдущий селект отработал. Но из браузера все равно выдает интернал сервер еррор ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2012, 13:25 |
|
||
|
Подключение к DB2 базе из windows
|
|||
|---|---|---|---|
|
#18+
Если запустить пхп из консоли то C:\Program Files\Zend\Apache2\htdocs>php db2.php invalid data source name ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2012, 13:28 |
|
||
|
Подключение к DB2 базе из windows
|
|||
|---|---|---|---|
|
#18+
Победил ошибку invalid data source name немного поменяв строку конекта, поствил хостнейм на первое место В целом такой код Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. На ноуте вроде взлетело :) Щас попробую на сервере, если получится напишу в итоге весь список действий которые делал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2012, 17:07 |
|
||
|
Подключение к DB2 базе из windows
|
|||
|---|---|---|---|
|
#18+
Жень, привет! А в чем прикол катологизировать базу, если к ней все равно через remote обращаются? Или я уже что-то подзабыл... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2012, 11:00 |
|
||
|
Подключение к DB2 базе из windows
|
|||
|---|---|---|---|
|
#18+
IgorKonovalov, Привет! В данном случае чтобы проверить, что клиентские библиотеки DB2 нормально "цепляются" к конкретной СУБД. Т.к. из командной строки DB2 нельзя обратиться к некаталогизированной базе данных. В этом случае вылезла ошибка с отсутствием пакета клиента в базе (NULLID.SQLC2G15 0X41414141414C4959). В общем случае я считаю правильной практикой прописывать базы в каталоге клиента, а в строке соединения указывать только алиас каталога. Это для всех случаев, когда наличие платформенного клиента является обязательным (Perl, PHP, CLI, ODBC и т.п.). Исключением является Java JDBC, т.к. для его работы с удаленной базой клиент не требуется. Прописывание ссылок на базу с IP-адресами, портами и т.п. в скриптах считаю не очень удобной практикой, т.к. в случае переезда базы придется все это заменять и скорее всего сразу в нескольких (а может и очень многих местах). В случае алиаса - скрипт не нужно менять. Строка соединения в скрипте будет одинакова и для локальной СУБД и для удаленной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2012, 11:29 |
|
||
|
Подключение к DB2 базе из windows
|
|||
|---|---|---|---|
|
#18+
Евгений ХабаровIgorKonovalov, В общем случае я считаю правильной практикой прописывать базы в каталоге клиента, а в строке соединения указывать только алиас каталога. Это для всех случаев, когда наличие платформенного клиента является обязательным (Perl, PHP, CLI, ODBC и т.п.). Исключением является Java JDBC, т.к. для его работы с удаленной базой клиент не требуется. Прописывание ссылок на базу с IP-адресами, портами и т.п. в скриптах считаю не очень удобной практикой, т.к. в случае переезда базы придется все это заменять и скорее всего сразу в нескольких (а может и очень многих местах). В случае алиаса - скрипт не нужно менять. Строка соединения в скрипте будет одинакова и для локальной СУБД и для удаленной. На счет удобства это да. Согласен. Но приложение может использовать конфиги ;) а не хардкод. Так что это нивелируется. Более важный вопрос это наличие прямого соединения с базой без использования пулов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2012, 11:57 |
|
||
|
Подключение к DB2 базе из windows
|
|||
|---|---|---|---|
|
#18+
IgorKonovalovНа счет удобства это да. Согласен. Но приложение может использовать конфиги ;) а не хардкод. Так что это нивелируется. Более важный вопрос это наличие прямого соединения с базой без использования пулов. Согласен, это нивелируется, при выработанной "культуре программирования". Сама же платформа "PHP" допускает написание очень "грязного" кода, за что мне и не нравится. Пулы соединений и там можно организовать, но про это нужно задуматься, прочитать и настроить. Сама платформа не настраивает изначально на использование пулов. Поэтому я остаюсь поклонником J2EE, с разделением и изоляцией уровней приложения/сервера, с общим управлением ресурсами (пулами), с общей аутентификацией/авторизацией и т.п. прелестями. Хотя и там можно написать "грязный код", но платформа J2E (ИМХО) приучает к использованию готовых сервисов/интерфейсов и подходов, а не к изобретению велосипедов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2012, 12:12 |
|
||
|
Подключение к DB2 базе из windows
|
|||
|---|---|---|---|
|
#18+
Евгений ХабаровСама же платформа "PHP" допускает написание очень "грязного" кода, за что мне и не нравится. Пулы соединений и там можно организовать, но про это нужно задуматься, прочитать и настроить. Сама платформа не настраивает изначально на использование пулов. Поэтому я остаюсь поклонником J2EE, с разделением и изоляцией уровней приложения/сервера, с общим управлением ресурсами (пулами), с общей аутентификацией/авторизацией и т.п. прелестями. Хотя и там можно написать "грязный код", но платформа J2E (ИМХО) приучает к использованию готовых сервисов/интерфейсов и подходов, а не к изобретению велосипедов. Грязный код можно написать на любом языке, это вообще не вопрос языка, а опыта человека, который его пишет. А резюме все этого: 1) не используйте прямое соединение с базой. 2) пользуйтесь пулам. 3) каталогизировать базу или прописывать конфиги на ремоут - дело вкуса. Но IBM рекомендует все же каталогизировать, да и с точки зрения администрирования лучше каталогизировать. Так как людей, которые разбираются в ODBC DataSource-ах и в DB2 CLI намного больше, чем людей разбирающихся в конфигах Вашего приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2012, 12:29 |
|
||
|
Подключение к DB2 базе из windows
|
|||
|---|---|---|---|
|
#18+
IgorKonovalovЕвгений ХабаровСама же платформа "PHP" допускает написание очень "грязного" кода, за что мне и не нравится. Пулы соединений и там можно организовать, но про это нужно задуматься, прочитать и настроить. Сама платформа не настраивает изначально на использование пулов. Поэтому я остаюсь поклонником J2EE, с разделением и изоляцией уровней приложения/сервера, с общим управлением ресурсами (пулами), с общей аутентификацией/авторизацией и т.п. прелестями. Хотя и там можно написать "грязный код", но платформа J2E (ИМХО) приучает к использованию готовых сервисов/интерфейсов и подходов, а не к изобретению велосипедов. Грязный код можно написать на любом языке, это вообще не вопрос языка, а опыта человека, который его пишет. А резюме все этого: 1) не используйте прямое соединение с базой. 2) пользуйтесь пулам. 3) каталогизировать базу или прописывать конфиги на ремоут - дело вкуса. Но IBM рекомендует все же каталогизировать, да и с точки зрения администрирования лучше каталогизировать. Так как людей, которые разбираются в ODBC DataSource-ах и в DB2 CLI намного больше, чем людей разбирающихся в конфигах Вашего приложения. +100500 Был бы здесь FAQ, однозначно бы туда это резюме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2012, 12:35 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=38037690&tid=1601636]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
91ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 289ms |
| total: | 482ms |

| 0 / 0 |
