Меню

Настройка firebird в debian



Словарик по FireBird

Инструменты пользователя

Инструменты сайта

Боковая панель

Введение

Статьи и часто задаваемые вопросы

Установка и настройка

Обработка ошибок

Полезные запросы SQL

Тематические группы

Содержание

Установка firebird на Linux

Ubuntu

Если вам нужен супер сервер то последнее заменяется на firebird2.5-super нужная версия соответсвенно тоже подбирается с нуждами.

В некоторых версиях еще требуется создать симлинк с /usr/lib/libfbclient.so.что-то_там на /usr/lib/libfbclient.so

RedHat, Mandriva, Debian

С официального сайта http://www.firebirdsql.org/en/downloads/ ставим подходящую сборку сервера FireBird

Устанавливаем сервер Apache и поддержку PHP (как вариант для Mandriva Linux разумно провести установку пакета urpmi task-lamp подробнее см. http://wiki.mandriva.com/ru/Linux-Apache-MySQL-PHP)

После установки серверов FireBird, Apache и PHP подключаем поддержку FireBird через PHP.

Для этого, устанавливаем пакет php-interbase. Если таковой отсутствует в репозитории, нужный пакет можно скачать с RPM-Finder http://rpmfind.net/linux/rpm2html/search.php.

Для этого в строке поиска набрать ‘php-interbase‘, в поле System -ввести операционную систему, например ‘Mandriva

Выбрать и установить нужный пакет

Debian 7 wheezy

Заходим под root

Нажмите «yes». Необходимые пакеты будут загружены и установлены на целевую систему. Также будет создан новый пользователь “firebird” для запуска сервера, но сервер пока не будет запускаться автоматически. Для запуска сервера Firebird автоматически при старте системы, запустите настройку dpkg-reconfigure на данном пакете и нажмите “Да” при соответствующем вопросе. Затем вам будет предложено ввести пароль SYSDBA:

После ввода пароля и нажатия «ок» сервер FireBird будет запущен. Теперь скачиваем библиотеку UDF rfunc, заходим на сайт

На этом сайте скачиваем архив rfunc.linux_amd64.tar.gz

Скачиваем программу WinSCP и устанавливаем, затем архив перекидываем на linux. Распаковываем его

Копируем в папку UDF

На этом установка завершена.

Обсуждение

Если коннект локальный есть а внешнего нет, то проверяем следующее

строку localhost:gds_db stream tcp nowait firebird /usr/sbin/tcpd /usr/sbin/fb_inet_server

меняем на 0.0.0.0:gds_db stream tcp nowait firebird /usr/sbin/tcpd /usr/sbin/fb_inet_server

Так же возможна ситуация когда клиент не может подключиться, хотя до этого подключался. Возможно мы достигли предел на количество подключений к серверу inetd

укажем серверу количество подключений (пример)

gds_db stream tcp nowait firebird /usr/local/bin/fb_inet_server fb_inet_server

после nowait установим количество сессий nowait/100

gds_db stream tcp nowait/100 firebird /usr/local/bin/fb_inet_server fb_inet_server

Описание синтаксиса [/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]]

* Максимальное число порожденных даемонов, которых может создать inetd, может быть задано параметром max-child. Если нужно ограничение в десять экземпляров некоторого даемона, то после параметра nowait нужно задать /10. При задании /0 ограничения на количество экземпляров снимаются.

* Кроме max-child, могут быть задействованы два других параметра, ограничивающих максимальное число соединений от одного источника. max-connections-per-ip-per-minute ограничивает количество соединений от одного IP-адреса в течение минуты, так что значение, равное десяти, будет ограничивать любой заданный IP-адрес на выполнение десяти попыток подключения к некоторому сервису в минуту. Параметр max-child-per-ip ограничивает количество дочерних процессов, которые могут быть одновременно задействованы на обслуживание одного IP-адреса. Эти опции полезны для предотвращения намеренного или ненамеренного расходования ресурсов и атак типа Denial of Service (DoS) на машину.

* В этом поле одно из значений wait или nowait обязательны. max-child, max-connections-per-ip-per-minute и max-child-per-ip опциональны.

* Многопоточный даемон типа stream без ограничений max-child, max-connections-per-ip-per-minute или max-child-per-ip будет определен просто как nowait.

* Тот же самый даемон с ограничением в максимум десять даемонов будет определен так: nowait/10.

* Та же конфигурация с ограничением в двадцать соединений на IP-адрес в минуту и общим ограничением в максимум десять порожденных даемонов выглядит так: nowait/10/20.

* Наконец, пример, описывающий ограничение на 100 даемонов в целом, при этом не более чем по 5 на один IP-адрес, будет выглядеть так: nowait/100/0/5.

Источник

Установка Firebird на Ubuntu Linux

Просмотр перевода статьи на документах Goggle.
В данной статье описывается процесс установки и запуска Firebird на Ubuntu Linux. Он также должен работать без изменений в дистрибутивах Debian GNU / Linux (стабильной версии Squeeze и нестабильной Sid версии). Ubuntu базируется на пакетах ядра Debian. Установка программного обеспечения с Ubuntu (или Kubuntu) очень проста и Firebird не является исключением. Это руководство основано на Ubuntu 10.04 LTS “Lucid Lynx”.
(прим. перев. — при составлении перевода использовалась версия Ubuntu 11.04, далее в статье также для установки будет использована версия FireBird 2.5.0 Stable).

Читайте также:  Настройка веб удаленного стола

С правами администратора на целевой машине, введите следующую команду:

$ sudo su
# apt-get install firebird2.5-super

Система отслеживания зависимостей Apt будет автоматически предлагать все пакеты, необходимые для полной установки со следующим выводом:

Нажмите клавишу “Ввод” и необходимые пакеты будут загружены и установлены на целевую систему. Также будет создан новый пользователь “firebird” для запуска сервера, но сервер пока не будет запускаться автоматически:

Если вы хотите чтобы сервер Firebird запускался автоматически при старте системы, запустите настройку dpkg-reconfigure на данном пакете и нажмите “Да” при соответствующем вопросе. Затем вам будет предложено ввести пароль SYSDBA:

# dpkg-reconfigure firebird2.5-super

После кажатия кнопки “Ок” сервер FireBird будет запущен.

Вы опытный пользователь Unix, но новичек в Ubuntu, тогда вы удивитесь, как удобно расположились все файлы Firebird в иерархии каталогов. Чтобы увидеть, где все файлы были установлены при помощи Apt, выполните следующую команду:

# dpkg -L firebird2.5-super
/.
/etc
/etc/init.d
/etc/init.d/firebird2.5-super
/etc/default
/etc/default/firebird2.5-super
/usr
/usr/share
/usr/share/doc
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/firebird2.5-super
/usr/bin
/usr/bin/nbackup
/usr/bin/qli
/usr/bin/gbak
/usr/bin/gfix
/usr/bin/gpre
/usr/bin/isql-fb
/usr/bin/gsec
/usr/bin/fbstat
/usr/bin/gdef
/usr/lib
/usr/lib/firebird
/usr/lib/firebird/2.5
/usr/lib/firebird/2.5/bin
/usr/lib/firebird/2.5/bin/fbmgr
/usr/lib/firebird/2.5/bin/fbmgr.bin
/usr/lib/firebird/2.5/bin/fb_lock_print
/usr/lib/firebird/2.5/bin/fbguard
/usr/lib/firebird/2.5/bin/fbserver
/usr/lib/firebird/2.5/UDF
/usr/lib/firebird/2.5/UDF/fbudf.so
/usr/lib/firebird/2.5/UDF/ib_udf.so
/usr/share/doc/firebird2.5-super

Как уже упоминалось, для запуска сервера создается новый пользователь «firebird». Обязательно установите пароль для данного пользователя (воспользовавшись правами администратора):

# passwd firebird
Введите новый пароль UNIX:
Повторите ввод нового пароля UNIX:

Сейчас вы можете переключится на пользователя “firebird”, используя команду su, если потребуется.

Установка примеров и файлов для разработчика:

# apt-get install firebird2.5-examples firebird2.5-dev

Примеры баз данных появятся в следующем дереве каталогов
/usr/share/doc/firebird2.5-examples/examples/.
Теперь вы можете проверить свой установленный сервер Firebird, подключившись к примеру базы данных. Распакуйте пример базы данных — employee.fdb:

# cd /usr/share/doc/firebird2.5-examples/examples/empbuild/
gunzip employee.fdb.gz
chown firebird.firebird employee.fdb
mv employee.fdb /var/lib/firebird/2.5/data/

Запустите интерактивную оболочку isql-fb и в SQL> строке запроса введите команду подключения к созданной базе данных employee:

(замените SYSDBApassword на свой пароль для SYSDBA!)
Если Вы успешно подключились к базе данных, вы увидите следующее сообщение:

Теперь из SQL> строки запроса, вы можете просматривать базу данных employee. Например, вы можете получить список таблиц и проверить версию сервера:

Если вы хотите использовать GUI (графический) инструмент администрирования, вы можете попробовать FlameRobin, который включен в репозиторий Ubuntu. Он может быть установлен очень просто:

# apt-get install flamerobin

Если вы получаете сообщение об ошибке, такое как «Statement failed, SQLCODE = -551 no permission for read-write access to database /var/lib/firebird/2.5/data/employee.fdb», это означает, что серверный процесс не может прочитать или получить доступ на запись в файл базы данных. Измените владельца базы данных для пользователей firebird:

# cd /var/lib/firebird/2.5/data/
# chown firebird:firebird employee.fdb

Если вы дошли до этого пункта и сделали все правильно, ваш Firebird сервер успешно установлен на Ubuntu. Успехов вам!

Данный перевод был составлен при помощи Google Documents и веб-браузера FireFox
Для тестирования установки сервера использовалась виртуальная машина Ubuntu 11.04 на VirtualBox.

Источник

Настройка firebird в debian

В своих изысканиях я руководствовался различным материалом: раз, два, три.

Все действия выполняем из-под рута, либо через свою учетку из-под sudo.

Для FB 3.x.x на никсах, в отличие от FB 2.x.x, «системные суперсерверы» не нужны. Поэтому xinetd можно не устанавливать. Ниже будет описан способ установки полноценного сервера. Об установке «встроенного» (embedded) сервера можно почитать тут.

1. Подготовка системы к установке.

Есть первый нюанс. Операционная система уже имеет в составе дистрибутива библиотеки Firebird. Как правило, это предыдущие релизы. Например, Debian 8.7.1 i386 в папке /usr/lib/i386-linux-gnu (если у вас другая разрядность, то у папки /i386-linux-gnu будет соответственно и другое название) имеет две библиотеки FB 2.5 и два симлинка (ссылки, аналоги «ярлыков» Windows).

Есть второй нюанс. После обновления репозиториев командой

все ранее измененные или удаленные симлинки восстановятся в первозданном виде. И ниже описанные телодвижения придется повторять снова. Поэтому, после каждого обновления репов необходимо проводить ревизию всех симлинков заново.

Читайте также:  Настройка облепихи на самогоне

При установке программ, использующих своей работе Firebird, иногда могут возникнуть сложности с использованием клиентских библиотек «нужной» версии. Это касается программ, в которых используется т.н. статическая линковка библиотек и создание «неправильных» ссылок на используемые клиентские библиотеки на этапе их установки. Суть проблемы в том, что программа разработчиком может быть «привязана» к системному симлинку с определенным именем, а вот сам симлинк может ссылаться на библиотеку от другой версии сервера. В результате приложение не сможет осуществить коннект к базе данных, несмотря на наличие единственного сервера FB в системе. Типичным примером такой программы под Linux является FlameRobin (суть и решение проблемы описаны здесь).

Поэтому я советую перед установкой FB3 сначала удалить все клиентские библиотеки от предыдущей, либо править симлинки вручную способом, описанным в ссылке в предыдущем абзаце.

Update(10.06.19): зеленым цветом будут обозначен аналогичный код для 64-битных систем

По умолчанию, поставленные из репов программы, сначала ищут симлинки в папке /usr/lib/i386-linux-gnu (для x64 соответственно /usr/lib/x86_64-linux-gnu), а затем в /usr/lib, если не будут найдены в предыдущей.

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

Просматриваем содержимое вывода консоли на наличие библиотек Firebird

Видим две клиентских библиотеки (2-й и 4-й файлы) и два симлинка на них (соответственно 1-й и 3-й файлы). Удаляем симлинки

Клиентские библиотеки от FB2.5 можно оставить или удалить на ваше усмотрение. Я удалил во избежание:

Проверим на всякий случай /usr/lib
# cd /usr/lib
# cd /usr/lib # ls -lH | tee [-a /home/leyba/temp/ .txt]

У меня на «чистой» системе ничего не нашлось, но здесь также могут симлинки. Если вы уверены, что ни одна из уже установленных программ не используется какую-либо версию Firebird, то можете смело удалить симлинки выше описанным способом.

Update(10.06.19): для Debain 10 выше указанные библиотеки (только версии 3.0) можно найти здесь /usr/lib64.

2. Собственно установка firebird.

Поставить Firebird можно установить двумя способами:

Первый способ.

Поскольку FB3 пока нет в стабильных репозиториях Дебиана, добавляем ссылки на тестовые репозитории в /etc/apt/sources.list следующим образом (забегая вперед, стоит упомянуть, что эти репозитории нужно будет удалить/закомментировать после окончания установки сервера, иначе при установке других программ и пакетов могут возникнуть проблемы). Увы, не всегда там бывает самый последний релиз. В этом недостаток этого способа. Итак, добавляем следующие ссылки:

Сохраняем файл и апдейтим пакеты

Ставим необходимые пакеты

# apt-get install firebird3.0-utils

ставим сервер
# apt-get install firebird3.0-server

вылезет окно с запросом пароля. В тройке изменен порядок установки пароля для SYSDBA (см. ниже), поэтому просто жмем «ОК», поскольку это окно не устанавливает пароль.

Получаем в консоли
# adduser: Warning: The home directory `/var/lib/firebird’ does not belong to the user you are
# currently creating.
# Created default security3.fdb
# Job for firebird3.0.service failed. See ‘systemctl status firebird3.0.service’ and ‘journalctl -xn’ for details.
# Firebird 3.0 server not enabled or unable to start
# Not setting SYSDBA password
# Please run ‘dpkg-reconfigure firebird3.0-server’
# later to set the SYSDBA password

Теперь необходимо установить пароль. Также может понадобится внести другие необходимые другие правки в конфигурационные файлы firebird.conf и . Стопорим сервер
# service firebird3.0 stop

В Firebird 3 пароль SYSDBA ставится вручную путем подключения isql через embedded-режим сервера (монопольное подключение, производится при отсутствии в строке коннекта названия сервера или loopback, обычно это localhost; при этом любой пароль игнорируется)
# isql-fb -user sysdba security.db
Database: security.db, User: SYSDBA
SQL>

В строке приглашении SQL> последовательно вводим две команды, завершая ввод каждой нажатием
SQL> create or alter user SYSDBA password ‘cooladmin’;
SQL> commit;

Можно заодно добавить нового юзера
SQL> create user user1 password ‘user1’;

В тройке имена могут быть регистрозависимы, если введены в разных регистрах в кавычках, т.е.
user1 = USER1 = User1 <> «User1»

Если хотим, чтобы user1 мог создавать свои базы данных ( подробности ), то необходимо дать ему привилегии явно

Смотрим, где и что лежит.

Файлы конфигурации сервера лежат здесь /etc/firebird/3.0

Библиотеки и симлинки кладутся сюда /usr/lib/i386-linux-gnu

Открываем файл конфигурации, если хотим изменить какие-нибудь параметры
# nano /etc/firebird/3.0/firebird.conf

Также можно добавить алиасы в /etc/firebird/3.0/databases.conf

Теперь стартуем сервис
# service firebird3.0 start

Не забываем закомментировать ссылки на тестовые репозитории в /etc/apt/sources.list.

И напоследок, если хотим удалить только сервер, то
# apt-get remove firebird3.0-server

если со всеми пакетами, то
# apt-get purge firebird3.0-server

Второй способ.

Update : на момент последней правки статьи актуальным релизом была версия FB 3.0.4

Распаковываем архив куда-нибудь, например в fb_304

=============================================
Важное замечание : при установке на Debian 9 (и Debian 10) выявлен баг инсталлятора (CORE-5445), суть которого заключается в том, что создается некорректный симлинк на на библиотеку отсутствующую libtommath.so.0.

Поэтому сначала необходимо установить пакет libtommath-dev

, затем создать симлинк libtommath.so.0 , т.к. инсталлятор использует его

либо удалить его штатных деинсталлятором
$ cd /opt/firebird/bin
$ sudo ./FirebirdUninstall.sh

Теперь можно запускать установку (по умолчанию ставится суперсервер)

При этом способе мы получаем версию релиза, выбранную самими. Пароль для sysdba определяется в процессе установки .

Корневой каталог установки ставится сюда /opt/firebird. При запуске утилит можно указывать в консоли либо абсолютный путь ним, либо добавить пути к бинарникам в PATH
$ sudo nano /etc/profile

пишем в конец файла
PATH=$PATH:/opt/firebird:/opt/firebird/bin

Для смены пароля подключаемся в embedded-режиме сервера (без указания имени сервера или loopback в строке коннекта):
leyba@leyba:

$ isql
Use CONNECT or CREATE DATABASE to specify a database
SQL> connect ‘/opt/firebird/examples/empbuild/employee.fdb’ user sysdba password ‘1’;
Database: ‘/opt/firebird/examples/empbuild/employee.fdb’, User: SYSDBA
SQL> create or alter user SYSDBA password ‘111’;
SQL> commit;

Update: если при попытке коннекта вдруг получаем ошибку

то даем права на эту папку группе и пользователю firebird (а лучше добавить сначала в группу пользователя , см .ниже, и затем добавить также и его)

Теперь коннектимся обычным способом с указанием нового пароля

SQL> connect ‘localhost:/opt/firebird/examples/empbuild/employee.fdb’ user sysdba password ‘111’;
Database: ‘localhost:/opt/firebird/examples/empbuild/employee.fdb’, User: SYSDBA
SQL> quit;

3. Доработка напильником.

После установки сервера проделываем следующие манипуляции (добавляем sudo, если манипуляции производим не из-под root’а).

Создаем папку для базы в своей домашней папке
$ mkdir /home/leyba/db_dir

Даем права группе firebird и пользователю firebird на эту папку и рекурсивно на все вложенные папки и файлы (ключ -R в строке)
$ sudo chown -R firebird:firebird /home/leyba/db_dir

Чтобы логиниться к базе не-root юзеру, необходимо добавить учетку этого юзера в группу firebird
$ sudo adduser firebird

Можно проверить, все ли правильно
$ grep firebird /etc/group

Все ОК
$ firebird:x:126:leyba

Даем права на папку и ее содержимое любому юзеру из группы firebird (кратко и на примере о правах на папки и файлы)
$ sudo chmod -R 775 /home/leyba/db_dir

Выходим из-под рута и пытаемся создать в указанной папке базу под своей учеткой от имени SYSDBA
$ isql-fb (при установке сервера из репов) или
$ isql (при установке сервера из архива)

Use CONNECT or CREATE DATABASE to specify a database

SQL> CREATE DATABASE ‘localhost:/home/leyba/db_dir/sysdba_db.fdb’ user sysdba password ‘cooladmin’ page_size 16384 DEFAULT CHARACTER SET UTF-8;
SQL> commit;

SQL> connect ‘localhost:/home/leyba/db_dir/sysdba_db.fdb’ user sysdba password ‘cooladmin’;
Database: ‘localhost:/home/leyba/db_dir/sysdba_db.fdb’, User: SYSDBA
SQL>quit;

Update: в случае запуска
полноценного сервера правами на созданный файл базы данных обладает пользователь, от имени которого установлен сервер
embedded сервера правами на созданный файл базы данных обладает пользователь, от имени которого запущен сервер

Для комфортной работы с базами через GUI ставим flamerobin

чтобы создать бд в нем, нужно в Database path выбрать папку и ввести там же имя БД.

Update: если ставить Firebird вторым способом (из архива), то соединение 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

Почему так происходит, описано здесь

Источник

Adblock
detector