Меню

Ошибка при установке firebird

Всем привет! Как-то понадобилось мне на компьютере с установленной Windows 10 (версия 1909) установить Firebird 1.5.2. Скачиваю с официального сайта необходимую версию и… при попытке запустить инсталлятор получаю следующую ошибку: «Firebird не может работать в ОС Windows».

Ну, думаю, все пропало. Времени искать компьютер с Windows XP или Windows 7 совсем нет, а дело-то делать нужно. 

Слава богу, есть Интернет! Загуглив данный вопрос, я получил интересную информацию, с которой спешу поделится с вами.

Заявление о несовместимости похоже связано с древним багом в апплете для управления сервером Firebird, но так он известен еще со времен Windows Vista и обходится путем отключения установки апплета. До этого обновления Firebird 1.5 нормально работал под Windows 10. Почему Microsoft решила заблокировать Firebird 1.5 — непонятно!

Также имейте ввиду, что при установке своих больших обновлений Windows 10 самостоятельно без вашего ведома удаляет сервер баз данных FireBird 1.5 (папка FireBird из редактора реестра, папка FireBird 1,5 из program files, gds32.dll из папки system32, firebird.msg из папки Windows). Тут получается, что придется либо не ставить эти крупные обновления, либо устанавливать после них заново Firebird 1.5 повторно. Как? Читаем дальше.

Решение

Данная блокировка со стороны Windows легко обходится. Для этого достаточно всего лишь переименовать файл-инсталлятор. После переименования и запуска файла начнется штатная установка Firebird!

Это все. Всем удачи!!!

kdv, www.ibase.ru, 04.07.2008

Firebird 2.1 как в коде так и в дистрибутиве содержит ряд изменений, которые в некоторых случаях вызывают проблемы с использованием Firebird. Ниже приведен перечень этих проблем и способ их решения.

1. При попытке соединения с чарсетом WIN1251 возникает ошибка

текст ошибки:

«bad parameters on attach or create database
CHARACTER SER WIN1251 is not defined»

Ответ: такое могло происходить и раньше, если сервер не находил или не мог загрузить библиотеку кодировок fbintl.dll. В Firebird 2.1 эта библиотека не может загрузиться как правило из-за того, что инсталлятор Firebird не смог установить Visual Studio 2005 Runtime. Это, в свою очередь, происходит из-за отсутствия в системе MS Installer 3.0.

Исправить проблему можно двумя способами:

  1. ! этот способ может не работать на конкретной версии ОС (например на windows 2003). Скопировать из каталога bin файл Microsoft.VC80.CRT.manifest вручную (это текстовый файл) в каталоги intl и udf, а затем скорректировать в копиях manifest пути к библиотекам msvcr80.dll и msvcp80.dll , чтобы они указывали на эти файлы, находящиеся в каталоге bin установки Firebird 2.1.
  2. Установить Windows Installer 3.0 Redistrubutable (его нет, например, если в Windows 2003 Server отключено авто-обновление), а затем установить Visual C++ 2005 Redistributable package (не с SP1. несмотря на то, что редистрибутив с SP1 называется идентично, и туда входят «похожие» файлы, данные файлы не будут использоваться Firebird 2.1).

Пытаться исправить проблему копированием файлов msvc*80.dll в system32 на операционных системах Windows XP и выше категорически не рекомендуется, т.к. при этом библиотеки рантайма загружаться не будут. Это также может быть источником проблемы, даже если в системе установлены Windows Installer и VC Runtime.

Также есть отличия между Firebird 2.1.0-2.1.1 и 2.1.2 и выше

  • для 2.1.1 и 2.1.0 при ручной установке файлов рантайма потребуется копирование ВСЕХ файлов рантайма в папки bin, intl и udf
  • для 2.1.2 и выше файлы рантайма требуются только в bin

2. Ошибка «cannot transliterate» при чтении текста процедур, триггеров и т.д.

Если вы работаете с IBExpert или подобным инструментом, который при открытии БД загружает в свой кэш метаданные БД, то такая ошибка будет возникать сразу при открытии БД.

Эта проблема связана с изменением (коррекцией) хранения метаданных в Firebird 2.1. Если у вас в процедурах, триггерах или других объектах есть комментарии или строковые константы в кодировке win1251, то вам необходимо провести процедуру миграции метаданных. Процедура изложена в этом документе — http://www.ibase.ru/metadata_charset/

Спасибо Дмитрию Гоголю и Владу Хорсуну за замечания и дополнения.


(c) iBase.ru, 2008.

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

Все действия выполняем из-под рута, либо через свою учетку из-под 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).

Есть

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

# apt-get update

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

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

Поэтому я советую перед установкой FB3 сначала удалить все клиентские библиотеки от предыдущей, либо править симлинки вручную способом, описанным в ссылке в предыдущем абзаце.Update(10.06.19): зеленым цветом будут обозначен аналогичный код для 64-битных систем

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

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

$ cd /usr/lib/i386-linux-gnu
$ ls -lH | tee [-a ~/temp/<ваше название лог-файла>.txt]

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

lrwxrwxrwx 1 root root 20 Dec 13 2014 libfbclient.so.2 -> libfbclient.so.2.5.3
-rw-r--r-- 1 root root 853660 Dec 13 2014 libfbclient.so.2.5.3
lrwxrwxrwx 1 root root 19 Dec 13 2014 libfbembed.so.2.5 -> libfbembed.so.2.5.3
-rw-r--r-- 1 root root 5584332 Dec 13 2014 libfbembed.so.2.5.3

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

# unlink /usr/lib/i386-linux-gnu/libfbclient.so.2
# unlink /usr/lib/i386-linux-gnu/libfbembed.so.2.5

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

rm -i /usr/lib/i386-linux-gnu/libfbclient.so.2.5.3 (тут с запросом подтверждения на удаление)
rm /usr/lib/libfbembed.so.2.5.3/i386-linux-gnu

Проверим на всякий случай /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.

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

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

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


deb-src http://ftp.ru.debian.org/debian/ testing main
deb http://ftp.ru.debian.org/debian/ testing main

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

# apt-get update

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

# 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> последовательно вводим две команды, завершая ввод каждой нажатием <Enter>
SQL> create or alter user SYSDBA password ‘cooladmin’;
SQL> commit;

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

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

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

SQL> grant create database to user user1;
SQL> commit;
SQL> quit;

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

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

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


 

root@leyba:/usr/lib/i386-linux-gnu# ls -lH | tee
...
lrwxrwxrwx 1 root root 20 Mar 25 19:07 libfbclient.so.2 -> libfbclient.so.3.0.1
-rw-r--r-- 1 root root 1693360 Mar 25 19:07 libfbclient.so.3.0.
...

Открываем файл конфигурации, если хотим изменить какие-нибудь параметры
# 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

 

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

Скачиваем последний релиз отсюда
https://firebirdsql.org/en/server-packages/

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

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


 

$ cd ~/fb_304

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

 

Created symlink /etc/systemd/system/multi-user.target.wants/firebird-superserver.service → /lib/systemd/system/firebird-superserver.service.
Please enter new password for SYSDBA user: <тут задается пароль>
/opt/firebird/bin/gsec: error while loading shared libraries: libtommath.so.0: cannot open shared object file: No such file or directory

Fatal error running 'systemctl --quiet start firebird-superserver.service' - exiting

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

$ sudo apt-get install libtommath-dev

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

$ sudo ln -sf /usr/lib/i386-linux-gnu/libtommath.so.1.0.0 /usr/lib/i386-linux-gnu/libtommath.so.0 

для Debian 10 amd64 лучше сделать так
$ sudo ln -sf /usr/lib/x86_64-linux-gnu/libtommath.so /usr/lib/x86_64-linux-gnu/libtommath.so.0 
поскольку libtommath.so является симлинком на libtommath.so.1.1.0 (который, очевидно, и используется 64-битным Firebird)

Важное замечание 2: при установке Firebird на Debian 10 amd64 встретилась еще одна ошибка:
$ /opt/firebird/bin/gsec: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
Fatal error running 'systemctl --quiet start firebird-superserver.service' - exiting
"Лечится" установкой недостающего пакета:
$ sudo apt-get install libncurses5

Удаляем неудачный установленный  firebird (если успели поставить)
$ sudo rm -Rf /opt/firebird

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

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

=============================================

# ~/fb_304$ sudo ./install.sh

Firebird 3.0.4.33054-0.i686 Installation

Press Enter to start installation or ^C to abort
Extracting install data
Please enter new password for SYSDBA user: cooladmin
Install completed

При этом способе мы получаем версию релиза, выбранную самими. Пароль для 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: если при попытке коннекта вдруг получаем ошибку

Statement failed, SQLSTATE = 08006
Can not access lock files directory /tmp/firebird/

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

$ sudo chown -R firebird:firebird /tmp/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 <user> 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

$ sudo apt-get install 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

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

Помогаю со студенческими работами здесь

Проблема с установкой расширения
Пытаюсь выполнить команду CREATE EXTENSION in_memory;

ОШИБКА: не удалось открыть управляющий…

Проблема с установкой MSSQL2000 на WinXP
Я логинюсь в винды под Administrator и ставлю SQL Server 2000 на WinXP (eng + 2sp) далее возникает…

Проблема с установкой Oracle 10g
Всем привет. Устанавливал oracle 10g по этой инструкции…

Проблема с установкой Oracle Database 19c
Добрый день.
Ставлю базы данных для обучения в институте, при установке Database выходит вот такая…

Проблема с установкой ADO на машинах клиентов
У меня возникла следующая проблема (VB6 &amp; SP4)
Создается инсталяция Package &amp; Deployment Wizard…

Проблема с установкой sp3 на sql 2000
При запуске установки sp2 или sp3 появляется заставка setupsql.
Доходит до 99% и исчезает с…

Проблема с установкой границ Таблицы Excel при выгрузке из Access 2013
Нужна помощь! Уже несколько дней бьюсь над одной проблемой. Я новичок в VBA, поэтому сразу прошу…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

Submitted by: F.D.Castel (fdcastel)

Installing FB 2.1.1 on a Windows XP SP3 (clean install, auto updates until 2008-Oct-08) with default options gives the following error when registering MSVC libraries.

On a Windows XP Service Pack 2 it works fine (MSIExec on this machine reports V 3.01.4000.1823).

Also, I tried to install VCRedist_x86.exe from Microsoft: VCRedist installs successfully, but when I run Firebird Setup, the same error shows again.

Can anybody reproduce, this? What are the parameters passed to MSIExec?

—<Begin of error message>————————————-

Windows ® Installer. V 3.01.4001.5512

msiexec /Option <Required Parameter> [Optional Parameter]

Install Options
</package | /i> <Product.msi>
Installs or configures a product
/a <Product.msi>
Administrative install — Installs a product on the network
/j<u|m> <Product.msi> [/t <Transform List>] [/g <Language ID>]
Advertises a product — m to all users, u to current user
</uninstall | /x> <Product.msi | ProductCode>
Uninstalls the product
Display Options
/quiet
Quiet mode, no user interaction
/passive
Unattended mode — progress bar only
/q[n|b|r|f]
Sets user interface level
n — No UI
b — Basic UI
r — Reduced UI
f — Full UI (default)
/help
Help information
Restart Options
/norestart
Do not restart after the installation is complete
/promptrestart
Prompts the user for restart if necessary
/forcerestart
Always restart the computer after installation
Logging Options
/l[i|w|e|a|r|u|c|m|o|p|v|x|+|!|*] <LogFile>
i — Status messages
w — Nonfatal warnings
e — All error messages
a — Start up of actions
r — Action-specific records
u — User requests
c — Initial UI parameters
m — Out-of-memory or fatal exit information
o — Out-of-disk-space messages
p — Terminal properties
v — Verbose output
x — Extra debugging information
+ — Append to existing log file
! — Flush each line to the log
* — Log all information, except for v and x options
/log <LogFile>
Equivalent of /l* <LogFile>
Update Options
/update <Update1.msp>[;Update2.msp]
Applies update(s)
/uninstall <PatchCodeGuid>[;Update2.msp] /package <Product.msi | ProductCode>
Remove update(s) for a product
Repair Options
/f[p|e|c|m|s|o|d|a|u|v] <Product.msi | ProductCode>
Repairs a product
p — only if file is missing
o — if file is missing or an older version is installed (default)
e — if file is missing or an equal or older version is installed
d — if file is missing or a different version is installed
c — if file is missing or checksum does not match the calculated value
a — forces all files to be reinstalled
u — all required user-specific registry entries (default)
m — all required computer-specific registry entries (default)
s — all existing shortcuts (default)
v — runs from source and recaches local package
Setting Public Properties
[PROPERTY=PropertyValue]

Consult the Windows ® Installer SDK for additional documentation on the
command line syntax.

Copyright © Microsoft Corporation. All rights reserved.
Portions of this software are based in part on the work of the Independent JPEG Group.

—<End of error message>————————————-

Commits: ef9e2e3

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Ошибка при установке fallout 4 от хаттаба
  • Ошибка при установке bluestacks что делать