FireBird 1.5 и 2.1 на одном компьютере как сервисы Windows
Понадобилось одному предприятию запустить на одном компьютере две программы, одна из хочет использовать сервер баз данных непременно версии 1.5 и не больше, а другая программа - версии никак не меньше 2.
Значит нужно оба поставить....
Дело было под Windows. Под другими системами, имхо, решение проблемы схожее должно быть.
Поискал. Нормальных решений в первых строках поисковиков нет. Точнее решения есть - но они все как один (передрали друг у друга) и неправильные...
Ставим версию 1.5
Ставим версию 2.1, она говорит, что будет поставлена не до конца, ибо обнаружила 1.5.
После установки в каталоге, куда был установлен Firebird в файле doc\install_windows_manually.txt читаем что нужно сделать для установки второго экземпляра.
Нужно всего-то вызвать с определенными параметрами командной строки утилиту, установленную с FireBird 2.1, с целью установить FireBird 2.1 как сервис.
Настройки (в моем случае) различных версий FireBird идентичны. Различие только номере порта TCP/IP, на котором сервер ожидает соединения с клиентами.
Нужно задать номер порта для каждого из экземпляров свой. Один из них пусть будет стандартным 3050, а другой 3151 (нестандартный).
И FireBird 1.5 и FireBird 2.1 прописаны в ветке реестра Windows "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services" в двух разных подразделах. Параметр "ImagePath" каждого из этих подразделов содержит путь к exe-файлу и параметры командной строки.
Нужно добавить еще один параметр "-p НОМЕР_ПОРТА", где номер порта сервера FireBird. Причем, мне пришлось сделать это не только для нестандартного порта, но и стандартного.
Перезапускаем сервисы.
Правим в клиентских программах строчку с параметрами подключения к базе данных.
Обращаться теперича к базе данных нужно не просто как "192.168.0.111:C:\DATABASE\DATAS.GDB", а указывая номер порта "192.168.0.111/3151:C:\DATABASE\DATAS.GDB". Для стандартного порта 3050 указывать номер порта явно нет необходимости.
Ставилось все это на Windows Server 2008 x64.