2016-05-06 5 views
4

Я только что установил Firebird 3.0 в Ubuntu 16.04 LTS. Я могу подключиться к серверу с помощью Flamerobin с компьютера Windows. Я также установил Flamerobin на сервере, чтобы иметь возможность управлять базами данных локально, но после регистрации сервера и базы данных соединения не удались. Flamerobin выводит следующее сообщение об ошибке:Не удалось установить соединение Flamerobin с Firebird 3.0 в Ubuntu 16.04 LTS - Ошибка: соединение отклонено удаленным интерфейсом

IBPP::SQLException 
Context: Database::Connect, 
Message: isc_attach_database failed, 
SQL Message: -923, Connection not established, 
Engine code: 335544421, Engine Message: connection rejected by remote interface. 

Есть ли у вас некоторые предложения, чтобы решить эту проблему и иметь возможность подключиться локально с помощью Flamerobin?

+0

Как вы подключаете (показать свойство соединения Вы используете), и какую версию libfbclient, так. загружается? Похоже, вы подключаетесь с использованием версии 2.5 или более ранней версии клиентской библиотеки, которая по умолчанию не работает из-за более строгих настроек безопасности. –

+0

@MarkRotteveel Извините за задержку, я боролся с другими конфигурациями для удаленного доступа , проблема с локальным доступом сохраняется. Это настройки подключения. Для регистрации сервера , Отображаемое имя: Локальный адрес, Имя хоста: 127.0.0.1, Номер порта: 3050. Для регистрации базы данных. Отображаемое имя: Тестирование, Путь к базе данных: /home/angel/Documentos/FBDB/test.fdb, Аутентификация: Использовать сохраненное имя пользователя и пароль, Имя пользователя: SYSDBA, Пароль: пароль, Charset: NONE, Role: (empty). Как проверить версию клиентской библиотеки? – AngelAvila

ответ

6

Хорошо, через пару дней, пытаясь настроить Flamerobin для подключения к Firebird 3.0, я наконец смогу это сделать.

Для начала нам нужно знать, какую библиотеку Flamerobin пытается загрузить. Чтобы узнать это, мы используем следующую команду:

ldd /usr/bin/flamerobin | grep libfb 

Выход:

libfbclient.so.2 => /usr/lib/x86_64-linux-gnu/libfbclient.so.2 (0x00007f48bb6f0000) 

Так, Flamerobin загружает старую версию клиентской библиотеки. Правильная клиентская библиотека для Firebird 3.0 в следующем пути:

/opt/firebird/lib/libfbclient.so.3.0.0 

После исследования в течение нескольких часов (я новичок в Linux), я обнаружил, что это было необходимо создать символическую связь между правильной библиотекой и путем, по которому Фламеробин загружает более старую библиотеку. Для этого я напечатал следующую команду (первый, я переименовал старую библиотеку на «libfbclient.so.2_»):

sudo ln -s /opt/firebird/lib/libfbclient.so.3.0.0 /usr/lib/x86_64-linux-gnu/libfbclient.so.2 

Наконец, выполните еще раз Flamerobin и теперь он подключен. @MarkRotteveel благодарит за подсказки.

0

Вам необходимо запустить службу fbguard. (Установка Firebird перед тем из flamerobin)

Я делаю некоторые, как это: $ кд/Opt/Жар/bin/Судо ./fbguard

Или $ кд/Opt/Жар/bin/Судо./fbguard -onetime -daemon

+0

Ошибка «соединение, отклоненное удаленным интерфейсом» отправляется с сервера клиенту, поэтому сервер работает и установлено соединение. Если Firebird не будет запущен, вы получите отказ_соединения_ на уровне сокета вместо _connection reject_ на уровне сервера Firebird. –

0

Отличный отзыв, AngelAvila. Появилась ошибка «Код двигателя: 335544421, Сообщение двигателя: соединение, отклоненное удаленным интерфейсом».

Это сработало для меня. В моем конкретно случае, должен был сделать две вещи:

  1. Поскольку файл /usr/lib/i386-linux-gnu/libfbclient.so.2 уже существовал, я переименовал его в libfbclient.so.2test:

    sudo su
    mv . /usr/lib/i386-linux-gnu/libfbclient.so.2 > /usr/lib/i386-linux-gnu/libfbclient.so.2test

  2. После этого, две небольшой модификации в файлах, используемых ("... i386 -..." вместо "... x86-64 ..." и»... libfbclient .so.3.0.1 "вместо" ... libfbclient.so.3.0.0"):

    sudo ln -s /opt/firebird/lib/libfbclient.so.3.0.1 /usr/lib/i386-linux-gnu/libfbclient.so.2

Наконец, база данных теперь подключены в Flamerobin

+0

Это может быть разным для каждого случая, потому что это зависит от версий ОС и Firebird, но по сути это одно и то же решение. – AngelAvila