Автор Тема: firebird настройка, подключение Windows клиента (РЕШЕНО)  (Прочитано 5615 раз)

Оффлайн igorigor76

  • Завсегдатай
  • *
  • Сообщений: 651
Установлено:
# rpm -qa | grep firebird
firebird-utils-superserver-2.1.5.18497.0-alt2
firebird-superserver-2.1.5.18497.0-alt2
firebird-server-common-2.1.5.18497.0-alt2
firebird-2.1.5.18497.0-alt2
firebird-server-superserver-2.1.5.18497.0-alt2
# service firebird status
active
grep gds_db /etc/services
gds_db 3050/tcp # Firebird SQL Database Remote Protocol
grep only_from /etc/xinetd.conf
# only_from = 127.0.0.1

1. Как удостовериться что порт 3050 открыт?

2. В Windows клиенте (в приложении) для подключения к удаленной базе данных прописываются два параметра ip адрес сервера и путь к базе данных, например так c:\folder\db.gdb. Это в случае, если firebird сервер запущен на Windows и файл базы данных расположен на этом "сервере" в c:\folder.
ВОПРОС. Если в качестве сервера firebird использовать компьютер под управлением linux как прописать c:\folder

« Последнее редактирование: 03.11.2016 06:30:24 от igorigor76 »

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Как удостовериться что порт 3050 открыт?
nmap localhost
https://packages.altlinux.org/ru/Sisyphus/srpms/nmap

netstat -lpn | grep 3050
« Последнее редактирование: 01.11.2016 22:28:49 от ruslandh »

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
grep only_from /etc/xinetd.conf
#   only_from = 127.0.0.1
Нафига такая дырка. и при чём тут xinetd?
« Последнее редактирование: 01.11.2016 22:29:03 от ruslandh »

Оффлайн igorigor76

  • Завсегдатай
  • *
  • Сообщений: 651
nmap localhost
Это я пробовал (нужно было вывод добавить в первое сообщение), среди открытых портов 3050 нет.

    grep only_from /etc/xinetd.conf
    #   only_from = 127.0.0.1

Нафига такая дырка. и при чём тут xinetd?
Это из этого сообщения: https://forum.altlinux.org/index.php?topic=32979.msg233986#msg233986
Кстати говоря, по умолчанию эта строка закомментирована. Я ничего там не менял.


netstat -lpn | grep 3050
Вот это уже смогу проверить завтра.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Это я пробовал (нужно было вывод добавить в первое сообщение), среди открытых портов 3050 нет.
Ну, значит дословно отвечая на ваш вопрос - порт закрыт, хотя это не значит, что его никто не слушает.
Это из этого сообщения: https://forum.altlinux.org/index.php?topic=32979.msg233986#msg233986
Там :
Classic запускается через xinetd,

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
А у вас он напрямую запущен:
# service firebird status
active

Оффлайн igorigor76

  • Завсегдатай
  • *
  • Сообщений: 651
1. Перешел на firebird-classic
# rpm -qa | grep firebird
firebird-server-common-2.1.5.18497.0-alt2
firebird-2.1.5.18497.0-alt2
firebird-server-classic-2.1.5.18497.0-alt2
firebird-utils-classic-2.1.5.18497.0-alt2
firebird-classic-2.1.5.18497.0-alt2

2. Положил базу в каталог /opt/firebird/4.gdb

3. Дал права:
# chown firebird:firebird /opt/firebird/4.gdb
# chmod 660 /opt/firebird/4.gdb

4. Далее:
# service xinetd restart
# chkconfig xinetd on
# ps ax | grep fbserver
 4428 pts/0    S+     0:00 grep --color=auto fbserver
# netstat -an | grep 3050
tcp        0      0 0.0.0.0:3050                0.0.0.0:*                   LISTEN

5. В клиенте (приложении Windows) прописал ip адрес сервера и путь /opt/firebird/4.gdb
Приложение запустилось и подключилось к базе данных. Потестировал работу приложения: несколько раз запускал/завершал, изменял данные, пробовал одновременную работу нескольких клиентов. На первый взгляд все работает.

6. После перезагрузки.
# service xinetd status
active
# ps ax | grep fbserver
 4178 pts/0    S+     0:00 grep --color=auto fbserver
# # netstat -lpn | grep 3050
tcp        0      0 0.0.0.0:3050                0.0.0.0:*                   LISTEN      3402/xinetd

Приложение к базе не подключается.
При подключении через flamerobin выскакивает окошко с сообщением:
** IBPP::SQLException ***
Context: Database::Connect
Message: isc_attach_database failed

SQL Message : -902
Unsuccessful execution caused by a system error that precludes
successful execution of subsequent statements

Engine Code    : 335544653
Engine Message :
cannot attach to password databas
в /var/log/firebird/firebird.log
Computer1.localdomain   Wed Nov  2 16:07:52 2016
        operating system directive open failed


Computer1.localdomain   Wed Nov  2 16:07:52 2016
        No such file or directory


Computer1.localdomain   Wed Nov  2 16:13:53 2016
        operating system directive open failed


Computer1.localdomain   Wed Nov  2 16:13:53 2016
        No such file or directory


Computer1.localdomain   Wed Nov  2 16:13:56 2016
        operating system directive open failed


Computer1.localdomain   Wed Nov  2 16:13:56 2016
        No such file or directory


Computer1.localdomain   Wed Nov  2 16:16:51 2016
        operating system directive open failed


Computer1.localdomain   Wed Nov  2 16:16:51 2016
        No such file or directory

« Последнее редактирование: 02.11.2016 16:46:34 от igorigor76 »

Оффлайн igorigor76

  • Завсегдатай
  • *
  • Сообщений: 651
Отвечаю сам.

Вот здесь лечение https://bugzilla.altlinux.org/show_bug.cgi?id=17689
А именно:
mkdir -p /var/run/firebird/После создания каталога все работает.

НО после перезагрузки сервера этого каталога снова НЕТ.

Что с этим делать?

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Судя по баге, обновить систему.

Оффлайн svk12

  • Начинающий
  • *
  • Сообщений: 1
НО после перезагрузки сервера этого каталога снова НЕТ.

Что с этим делать?
Насчёт классика не скажу, а вот для запуска суперсервера при старте системы
нужно править скрипт /etc/rc.d/init.d/firebird.

#После
start()
{
   #Добавить
   mkdir /var/run/firebird
   chown firebird /var/run/firebird



 

Оффлайн igorigor76

  • Завсегдатай
  • *
  • Сообщений: 651
Судя по баге, обновить систему.
На компьютере Centaurus 7.0.5, обновляю регулярно.
нужно править скрипт /etc/rc.d/init.d/firebird.

Код: [Выделить]

#После
start()
{
   #Добавить
   mkdir /var/run/firebird
   chown firebird /var/run/firebird
Спасибо.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
а компьютере Centaurus 7.0.5, обновляю регулярно.
Ну, значит багу в p7 не исправили - только в Сизифе и p8.

Оффлайн igorigor76

  • Завсегдатай
  • *
  • Сообщений: 651
Насчёт классика не скажу, а вот для запуска суперсервера при старте системы
нужно править скрипт /etc/rc.d/init.d/firebird.

#После
start()
{
   #Добавить
   mkdir /var/run/firebird
   chown firebird /var/run/firebird
Кто скажет на счет firebird-classic, куда эти строчки правильнее будет вписать?

Оффлайн igorigor76

  • Завсегдатай
  • *
  • Сообщений: 651
Вписал в /etc/rc.d/rc.local