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

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?

4
AngelAvila 7 Май 2016 в 02:44

3 ответа

Лучший ответ

Хорошо, после пары дней попытки настроить 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) я обнаружил, что необходимо создать символическую ссылку между правильной библиотекой и путем, по которому Flamerobin загружает старую библиотеку. Для этого я набрал следующую команду (сначала я переименовал старую библиотеку в «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 спасибо за подсказки.

6
AngelAvila 12 Май 2016 в 14:43

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

Я делаю примерно так: $ cd / opt / firebird / bin / sudo ./fbguard

Или $ cd / opt / firebird / bin / sudo ./fbguard -onetime -daemon

0
Ulises Sánchez 7 Май 2016 в 17:49

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

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

  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
DIF 17 Фев 2017 в 11:31