УкрСклад с базой firebird на Linux

// Январь 29th, 2015 // Debian, firebird, linux, ПО

Для тех кто не знает что это, идем сюда >>.

Все рано или поздно приходят к тому, что предприятие растет, появляются удаленные филиалы и работа с базой по сети просто необходима. Городить ради этого сервер с Windows естественно не у кого желания нет, поэтому появилась идея попробовать все запустить на Linux. Осмотрев принцип работы было выяснено, что сервер программы по сути представляет из себя сервер БД Firebird и обвязку к нему, что очень сильно упрощает идею переноса.

И имеем сервер на Debian Wheezy, выбран был в виду требования УкрСклад к версии Firebird 2.5, которая как раз есть в репозитории (в более ранних версиях Debian — 1.5).

Установим Firebird:

 apt-get install firebird2.5-superclassic

этот пакет вытянет вся нужные зависимости сам. ВАЖНО! При установке запросит пароль для суперпользователя БД SYSDBA — укажите «masterkey«, УкрСклад использует эту учетную запись по умолчанию для подключения к БД.

УкрСклад использует свою библиотеку функций, её тоже нужно добавить на сервер иначе будет ошибка:

DataM.QueryRep.SelectQuery:
Can't format messege 13:98 -- message file C:\Program File\firebird.msg not found.
Access to UDF library "libtbudf.so" is denied by server administrator.

Скачиваем библиотеку:

wget http://www.softbalance.com.ua/files/libtbudf.rar

на всякий случай копия тут >>
для распаковки должен быть установлен пакет unrar

apt-get install unrar

распаковываем сразу в каталог с библиотеками

unrar e libtbudf.rar /usr/lib/firebird/2.5/UDF/

Скачиваем и устанавливаем серверную и клиентскую части УкрСклад. Нас интересует база, лежит она по пути C:\Program Files\UkrSklad6S\db\ файлы Sklad.tcb и SkladEmp.tcb — переносим их на компьютер с линуксом (для тех кто не знает как как это сделать — воспользуйтесь программой WinSCP) и размещаем по пути /var/lib/firebird/2.5/data/, меняем права на пользователя firebird:

chown -R firebird:firebird /var/lib/firebird/2.5/data/

Осталось настроить клиента УкрСклад для подключения к нашему серверу. Открываем в блокноте файл, обычно лежит по пути C:\Program files\UkrSklad6C\ubclient.ini, должно получится вот так:

[Server]
Hostname=192.168.100.3
Path=/var/lib/firebird/2.5/data/

Hostname — меняем на IP или имя компьютера с сервером БД, запускаем клиента, должно пройти обновление и программа запустится.

Есть еще один момент, на Windows XP клеинт упорно не хотел подключатся, выдавал ошибку подключения:

Ошибка соединения с базой данных =*= System Error. Code: 14001.
Приложение не было запущено, поскольку оно некорректно настроено.
Повторная установка приложения может решить данную проблему

Оказалось банально — винде не хватало библиотек, скачиваем vccrt8_win32.msi (локальная копия) и устанавливаем.

В принципе все. Если вас волнует вопрос безопасности в продолжении описание как сменить пользователя БД и пароль на SYSDBA.
Негоже что бы клиенты подключались по сети к БД от имени суперпользователя с паролем известным всем, поэтому создадим для этого отдельного пользователя:

# gsec
GSEC> add UKRSKLAD -pw UKRSKLAD -uid 105 -gid 107
GSEC> di
     user name                    uid   gid admin     full name
------------------------------------------------------------------------------------------------
SYSDBA                              0     0           Sql Server Administrator
UKRSKLAD                          105   107
GSEC> quit

Не забываем пароль сменить на свой, UID и GID в дебиане должны быть стандартными, но на всякий случай можно проверить

# getent passwd firebird
firebird:x:105:107:Firebird Database Administator,,,:/var/lib/firebird:/bin/bash
# getent group  firebird
firebird:x:107:

Еще нужно обновить права для нового пользователя, файл можно взять здесь >>
скачать:

wget http://www.kochetov.net.ua/wp-content/uploads/2015/ukrsklad/update_grant.sql

и выполнить:

isql-fb -i ./update_grant.sql

Сменить пароль суперпользователя БД SYSDBA можно так:

# gsec
GSEC> modify SYSDBA -pw newpassword
GSEC> quit

и изменить логин и пароль для подключения в клиенте, для этого в файле sklad.ini в раздел [Base] дописать директивы UserName и Password, должно получится так:

[Base]
Path=db\
Lang=rus.lng
ProgVersion=6
UserName=UKRSKLAD
Password=UKRSKLAD

Теперь точно все!

Если у вас что-то не получается, попробуйте спросить на форуме поддержка там очень даже вежливая и оперативная.

6 комментариев to “УкрСклад с базой firebird на Linux”

  1. alex:

    Спасибо, добрая душа, на центос 6.6 все встало прекрасно

  2. deugene:

    Добрый день!

    Возникла потребность установить сервер укрсклад на ubuntu server.
    Делал все по вашей инструкции.

    По итогу локально к базе могу законнектиться, а удаленно в той же сети нет…

    Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements.
    Unable to complete network request to host «192.168.1.210».
    Failed to establish a connection.

    К базе, установленной под Windows в той же сети коннектится нормально… Что делать, как быть? Заранее спасибо))

    • Судя по ошибке — не запущен сервер firebird или его порт закрыт фаирволлом, клиент не может получить доступ к порту.

  3. Poly:

    Спасибо за статью. Очень полезна.
    Возникла проблема при работе на CentOS:
    установка прошла успешно, сервер запустился, клиент подключается и открывается.
    Но при попытке сформировать определенную группу отчетов возникает ошибка «… Invalid token… Function UDF_ROUNDTO is not difined …»
    Библитеку libtbudf.so распаковывал в папку сервера /usr/lib/firebird/udf/libtbudf.so.

  4. Stanislav:

    Все сделал по инструкции, стандартный пользователь SYSDBA? пароль masterkey

    Но при запуске, клиент пишит что неправильный логин или пароль… Че делать?

    you user name and password are not defined. Ask you database administrator to set up a firebird login

  5. lifter:

    Укрсклад обновился и требует теперь firebird 2.5.6
    В репозитории версия только 2.5.
    Как установить версию 2.5.6 ?

Leave a Reply