Linux базы данных firebird

Setting up Firebird on Ubuntu Linux

Rodney Gedda

Adrian Marius Popa

8 February 2013 – Document version 2.5

Table of Contents

Setting up Firebird on Ubuntu Linux

This article describes the process of installing and running Firebird on Ubuntu Linux. It should also work without modification in the Debian GNU/Linux distribution (testing version named Wheezy and unstable version named Sid). Ubuntu is based on Debian core packages. Installing software with Ubuntu is very straightforward and Firebird is no exception. This guide is based on Ubuntu 12.04 LTS “ The Precise Pangolin ” but it can be used with a current supported stable release.

The version of Firebird packaged with Ubuntu “ Precise Pangolin ” is 2.5.1 and is included by default . For stable Ubuntu releases there is a Firebird stable ppa repository from where you can install the stable versions latest LTS and current stable .

With administrator privileges on the target machine, issue the following command:

Apt’s dependency tracking will automatically propose all the packages required for a complete installation with the following output:

The packages will then download and install on the target machine. A new user “ firebird ” will be created to run the server, but the server will not yet be started by default:

If you want Firebird to start automatically, run dpkg-reconfigure on the package and click the Yes button. Then you will be asked again for the SYSDBA password:

If all goes well, Firebird Superserver will be started:

If you’re a seasoned Unix person but new to Ubuntu, you might be wondering where all the Firebird files are residing in the directory hierarchy. To see where all the files were installed by Apt, simply do:

As mentioned, a new user “ firebird ” is created on the target machine.

Now you can switch to the firebird user with the su command if required.

Install the examples and dev files:

The example databases will wind up in the directory tree /usr/share/doc/firebird2.5-examples/examples/empbuild/ .

Now you can test your Firebird installation by connecting to an example database. Decompress the employee.fdb example database:

Fire up the interactive shell and at the SQL> prompt connect to the employee database using the connect statement:

(replacing SYSDBApassword with the correct password for SYSDBA !)

When you manage to successfully connect to the database you will see the message:

Now, from the SQL> prompt, feel free to browse around the employee database. For instance, you can list the tables and check the server version:

If you want a GUI admin tool, you might check FlameRobin, which is included in the Ubuntu repository. It can be installed with a simple:

If you get an error message like “ Statement failed, SQLCODE = -551 no permission for read-write access to database /var/lib/firebird/2.5/data/employee.fdb ”, then the server process doesn’t have read or write access to the database file. Change the ownership of the database to the user firebird with:

If you’ve made it this far, your Firebird installation on Ubuntu has been a success. Have a nice day!

Источник

Linux базы данных firebird

Утилита isql позволяет создавать базы данных более, чем одним способом. Мы же рассмотрим простой способ создания базы данных в интерактивном режиме, хотя для серьезного использования Вам, скорее всего, потребуется научиться создавать и использовать скрипты. В руководстве Using Firebird имеется отдельная глава, посвященная этому вопросу.

Запускаем isql

Для создания базы данных с использованием утилиты isql в интерактивном режиме, в командной строке перейдите в директорию bin и наберите isql (Windows) или ./isql (Linux):

Оператор CREATE DATABASE

Теперь Вы можете создать базу данных. Предположим, что Вы хотите создать базу данных test.fdb и сохранить её в папке data на диске D:

Важно

В отличии от оператора CONNECT , в операторе CREATE DATABASE кавычки вокруг пути к файлу, имени пользователя и пароля являются обязательными .

Если Вы используете Classic Server под Linux и в пути не указываете имя хоста, будет произведена попытка создать файл базы данных с Вашей учетной записью в Linux в качестве владельца. Может быть это именно то, что Вы и хотите, а может и нет (подумайте о правах доступа, если Вы хотите, чтобы к базе данных мог подключаться кто-то еще). Если же в пути указать, например, localhost:, тогда создавать и влдаеть файлом будет серверный процесс (который в Firebird 1.5 обычно работает от имени firebird).

В случае использования Classic Server под Windows, Вы должны указывать имя хоста (которое может быть localhost) плюс полный путь к файлу, в противном случае процесс создания закончится неудачей.

Будет создана база данных и через некоторое время вновь появится приглашение SQL. Теперь Вы подключены к новой базе данных и можете создать какие-нибудь объекты в ней.

Чтобы убедиться, что там действительно база данных, выполните запрос:

На экран будет выдано большое количество данных! Этот запрос извлекает все строки из системной таблицы, в которой Firebird хранит метаданные для таблиц. « Пустая » база данных на самом деле не очень-то и пустая – она содержит базу данных, которая будет расти, наполняясь метаданными, по мере создания Вами новых объектов в ней.

Для возвращения в командную строку, наберите

За дополнительной информацией об isql обращайтесь к главе 10 Using Firebird: Interactive SQL Utility (isql).

Источник

Linux базы данных firebird

В директории examples Вашей инсталляции Firebird лежит образец базы данных — employee.fdb , которую можно использовать « для пробы пера ».

Читайте также:  Windows 10 не могу удалить папку требует права администратора

Имя сервера и путь

Если Вы вдруг решили переместить образец базы данных на другой диск, убедитесь, что он физически подключен к компьютеру. Разделяемые (shared), присоединенные (mapped) диски или (на Unix) смонтированные (mounted) SMB (Samba) файловые системы не будут работать. Это правило касается любых создаваемых Вами баз данных.

При использовании TCP/IP строка подключения состоит из двух частей: имя сервера и путь к файлу. Формат строки имеет следующий вид:

Пример для Linux или другой Posix-системы с именем serverxyz :

Пример для Windows:

Оператор CONNECT

Для подключения к базе данных Firebird пользователь должен аутентифицироваться с использованием имени пользователя и правильного пароля. Кроме того, любому пользователю отличному от SYSDBA , root (Posix — системы), или Administrator (на Windows-системах, если Firebird запущен от имени этого пользователя) необходимо иметь разрешения на доступ к объектам внутри самой базы данных (так называемые объектные привилегии). Для простоты, рассмотрим процедуру аутентификации пользователя SYSDBA с использованием пароля masterkey .

Используем isql

Существует несколько способов подключения к базе данных с использованием утилиты isql . Один из них — это использование isql в интерактивном режиме. Перейдите в подкаталог bin директории, в которой установлена Ваша версия Firebird, и в командной строке наберите isql (для Linux: ./isql ) [↵ означает « нажать клавишу Enter »]:

Важно

В isql каждое SQL-выражение должно завершаться точкой с запятой. Если строка не заканчивается точкой с запятой, и Вы нажимаете клавишу Enter , isql будет считать, что выражение будет продолжаться на следующей строке и сменит приглашение с SQL> на CON> . Это позволяет разбивать длинные выражения на несколько строк. Если Вы нажали клавишу Enter , забыв указать точку с запятой, просто наберите символ после приглашения и нажмите Enter ещё раз.

Если, используя Classic Server под Linux, не указать имя хоста, будет предпринята попытка организовать прямое локальное соединение. Что, в свою очередь, может закончиться неудачей в случае отсутствия у текущей учетной записи Linux необходимых прав доступа к файлу базы данных. В этом случае попробуйте подключиться к localhost : /

. В этом случае файл будет открывать серверный процесс (который в Firebird 1.5 обычно работает от имени firebird ). С другой стороны, попытка сетевого соединения может закончиться неудачно, если пользователь создавал базу данных при локальном подключении и у сервера нет необходимых прав.

В случае использования Classic Server под Windows, Вы должны указывать имя хоста (это может быть localhost ) и полный путь, в противном случае подключиться не получиться.

Замечание

Несмотря на то, что в Firebird « нормальными » символами разделения строк являются одинарные кавычки, в примере, при указании пути к базе данных, использовались двойные кавычки. Это необходимо, так же как и в некоторых других утилитах командной строки, при указании путей, содержащих пробелы. Одинарные кавычки будут работать для путей, не содержащих пробелы.

Кавычки вокруг « SYSDBA » и « masterkey » необязательны. Также не обязательно заключать в кавычки путь к базе данных, не содержащий пробелов.

Далее isql сообщит о том, что Вы подключились:

Для того, чтобы вернуться в командную строку наберите

За дополнительной информацией об использовании isql обращайтесь к Using Firebird, глава 10: Interactive SQL Utility (isql).

Используем графические утилиты

Обычно, графические средства самостоятельно собирают строку соединения на основании информации, вводимой пользователем в отдельных полях — имя сервера, путь к базе данных, имя пользователя и пароль. Как их использовать должны быть понятно из информации, изложенной в предыдущем разделе.

Замечание

Существуют средства, в которых имя сервера + полный путь ожидаются в виде одной строки

Помните, что на Linux и других Posix-системах имена файлов и названия команд являются чувствительными к регистру

Создаем базу данных с помощью isql

Утилита isql позволяет создавать базы данных более, чем одним способом. Мы же рассмотрим простой способ создания базы данных в интерактивном режиме, хотя для серьезного использования Вам, скорее всего, потребуется научиться создавать и использовать скрипты. В руководстве Using Firebird имеется отдельная глава, посвященная этому вопросу.

Запускаем isql

Для создания базы данных с использованием утилиты isql в интерактивном режиме, в командной строке перейдите в директорию bin и наберите isql (Windows) или ./isql (Linux):

Оператор CREATE DATABASE

Теперь Вы можете создать базу данных. Предположим, что Вы хотите создать базу данных test.fdb и сохранить её в папке data на диске D :

Важно

В отличии от оператора CONNECT , в операторе CREATE DATABASE кавычки вокруг пути к файлу, имени пользователя и пароля являются обязательными .

Если Вы используете Classic Server под Linux и в пути не указываете имя хоста, будет произведена попытка создать файл базы данных с Вашей учетной записью в Linux в качестве владельца. Может быть это именно то, что Вы и хотите, а может и нет (подумайте о правах доступа, если Вы хотите, чтобы к базе данных мог подключаться кто-то еще). Если же в пути указать, например, localhost: , тогда создавать и влдаеть файлом будет серверный процесс (который в Firebird 1.5 обычно работает от имени firebird ).

В случае использования Classic Server под Windows, Вы должны указывать имя хоста (которое может быть localhost ) плюс полный путь к файлу, в противном случае процесс создания закончится неудачей.

Будет создана база данных и через некоторое время вновь появится приглашение SQL. Теперь Вы подключены к новой базе данных и можете создать какие-нибудь объекты в ней.

Чтобы убедиться, что там действительно база данных, выполните запрос:

На экран будет выдано большое количество данных! Этот запрос извлекает все строки из системной таблицы, в которой Firebird хранит метаданные для таблиц. « Пустая » база данных на самом деле не очень-то и пустая – она содержит базу данных, которая будет расти, наполняясь метаданными, по мере создания Вами новых объектов в ней.

Для возвращения в командную строку, наберите

За дополнительной информацией об isql обращайтесь к главе 10 Using Firebird: Interactive SQL Utility (isql).

Firebird SQL

Каждая систем управления базами данных имеет свои отличительные особенности в реализации SQL. По сравнению с любой другой СУБД, за возможным исключением « близкой родственницы » — InterBase®, Firebird наиболее строгим образом соответствует стандарту SQL. Разработчики, переходящие с других продуктов, соответствующих стандарту в меньшей степени, ошибочно воспринимают Firebird странным, притом, что многие мнимые « странности » на самом деле не являются таковыми.

Читайте также:  Install postgres in windows

Деление целых чисел

В соответствии со стандартом SQL, Firebird при вычислении частного от деления целого числа на целое округляет результат до ближайшего меньшего целого. В случае если Вы не были готовы, это может слегка шокировать Вас при получении результатов.

Например, следующее вычисление является корректным с точки зрения SQL:

Если Вы переходите с СУБД, в которой частное от деления целого на другое целое приводится к нецелому, Вам будет необходимо доработать подобные выражения и заменить тип делимого, делителя или обоих на число с плавающей или фиксированной точкой.

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

Источник

Firebird под Linux

Delphi site: daily Delphi-news, documentation, articles, review, interview, computer humor.

Firebird под Linux

© 2003 Pascal Chong

© 2003 Тимур Бирш , перевод

1.1. Почему янаписал это?

1.2. Copyright и предупреждения

1.3. Почему я должен использовать Firebird?

2. Установка Firebird

2.1. Где я могу взять Firebird?

2.2. Какую версию я должен скачивать?

2.3. Системные требования

2.4. Установка Firebird

3. Начало работы с Firebird

3.1. Утилиты администрирования

3.1.1. Администратор безопасности gsec

3.1.2. isql — Interactive SQL

3.2. Созданиевашей первой базы данных

3.3. Добавление пользователей и ролей

3.4. Тестирование базы данных

4. Дополнительные ссылки

1. Введение

В июле 2000 года Borland (потом Inprise) выпустил исходные тексты их СУБД, Interbase, под лицензией Interbase Public License. Firebird прямой Open Source потомок данной СУБД.

1.1. Почему я написал это?

Мое первое знакомство с Interbase произошло когда я работал в 1999 году в компании продававшей продукты Borland. Я проводил техническую поддержку и кое-какие курсы по Delphi и Interbase шел вместе с Delphi Client/Server. Тогда, я приобрел хорошего друга сходившего с ума по Interbase. Мне это было не совсем интересно, так как я в это время проводил поддержку IBM DB2 и участвовал в бета-тестировании Linux.

Возвращение к Interbase, и его настоящей Open Source инкарнации, Firebird, произошло только недавно. Кто-то в списке рассылке спросил о Open Source СУБД которые могут поставляться вместе с приложениями и кто-то другой подсказал что Firebird. Тогда я вспомнил своего друга и подумал что может быть бы он порадовался увидя что, пишут о его любимой СУБД, вот поэтому я и решил написать данный документ.

This document is free documentation; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

1.3. Почему я должен использовать Firebird?

Open Source СУБД обычно страдают от двух распространенных недостатков: они большие, такие как PostgreSQL и MySQL или в них не достает возможностей и документации, такие как HypersonicSQL или McKoi.

Firebird имеет относительно небольшой размер, около 2,6Mb в RPM-пакете. Это делает его идеальным для роли “встроенной СУБД” (embedded database), поставляемой с сервером приложений и приложением. В Firebird есть все распространенные функции большинства сформировавшихся СУБД, такие как поддержка хранимых процедур, соответствие SQL-стандарту и др. Если вы работаете с DB2 и PostgreSQL, то их синтакс очень похож и типы данных, работа с данными видимо очень похожа, такие как обязательное включение строк в одинарные кавычки.

При разработке Firebird видимо делался акцент на маленьком размере, быстроте и минимальном администрировании. Это идеально для разработчиков которым нужна БД для хранения, но которые не хотят тратить слишком много времени на настройку БД. В большинстве ситуаций вам не нужны хранимые процедуры или не нужно делать комплексные слияния таблиц. В таких случаях Firebird идеальный компромисс между размером и функциональностью.

2. Установка Firebird


2.1. Где я могу взять Firebird?

Последние версии доступны прямо с IBPhoenix .

2.2. Какую версию я должен скачивать?

На данный момент есть две версии Firebird-сервера которые вы можете скачать:

Firebird Super Server

Firebird Classic Server

В двух словах, отличие между двумя версиями находится в подходе к проектированию. Super Server использует потоки для обслуживания разных клиентов подключающихся к нему в одно время, а Classic Server порождает отдельный процесс для каждого подключения. Статью сравнивающую эти два подхода вы можете найти на IBPhoenix 1 . Выбирать какую версию сервера использовать полностью за вами. Для “встроенных СУБД” с малым количеством пользователей, то нет большой разницы какую вы выберите. Теоретически, для приложений с большим количеством пользователей, Super Server должен работать лучше при уменьшении времени процесса запуска и лучшего совместного использования ресурсов. У меня не было возможности протестировать это в среде с большой нагрузкой, так что я не могу говорить ответственно на данную тему.

Данный документ описывает только Firebird Super Server.

2.3. Системные требования

БД размером 2,5Мб довольно маленькая по размеру, и я полагаю, если у вас работает Linux, то вы сможете без проблем использовать эту БД.

ncurses4 v5.0 или выше;

glibc v2.2 или выше.

Данная конфигурация была протестирована на Probatus Spectra Linux 1.2 которая эквивалентна RedHat v7.3 . Firebird должен работать на любом Linux основанном на RPM-пакетах.

2.4. Установка Firebird

После того как вы скачали RPM-пакет с веб-сайта, войдите в систему как root.

Выполните следующую команду:

# echo localhost.localdomain >>/etc/hosts.equiv

Она добавит localhost в список серверов которые она распознает. Перейдите в директорию где находится скачанный RPM-пакет и выполните следующую команду:

Данная команда установит Firebird и создаст скрипт в директории /etc/init.d который будет запускать Firebird при загрузке системы. Если вы столкнулись с какими-то ошибками, проверьте что у вас установлены ncurses4 и правильная версия glibc.

Занимательно, вы будете извещены что Firebird создаст директорию с именем interbase в директории /opt и установит свои файлы там. Это показывает его наследственность, так как он был основан как-никак на Interbase. Нам нужно что бы бинарные файлы были доступны в масштабе всей системы и для этого мы отредактируем файл /etc/profile , вставив следующие строки:

Сохраните файл, перезапустите сервер и проверьте что Firebird запустился успешно.

3. Начало работы с Firebird

Теперь мы перейдем к работе с примером БД и ознакомлению с утилитами для работы с этой СУБД.

Читайте также:  Как узнать свой номер активации windows 10

3.1. Утилиты администрирования

По умолчанию учетная запись администратора имеет имя SYSDBA (данное имя пользователя не чувствительно к регистру) и пароль masterkey . Для пользователей предыдущих версий Interbase (и людей которые работали над примером Fish Catalog для Delphi) это видимо очень знакомо. Вы будете использовать данную учетную запись в начале чтобы создавать других пользователей и пример БД.

Доступные утилиты администрирования:

gsec – администратор безопасности. Вы используете данную утилиту командной строки для создания, изменения и удаления пользователей БД, изменения паролей и др.;

isql – Interactive SQL, похожая на утилиты Oracle SQL*Plus и PostgreSQL psql. Вы можете использовать ее для тестирования и выполнения SQL-запросов.

3.1.1. Администратор безопасности gsec

Вам нужно запустить gsec как SYSDBA. Чтобы осуществить это, выполните следующее как root или не-root пользователь:

$ gsec -user sysdba -password masterkey

Это выведет на экран приглашение GSEC> . Вы можете вывести текущих пользователей введя на приглашение “display” :

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

GSEC> modify SYSDBA -pw newpassword

Хорошо, newpassword не совсем стойкий пароль. Вы должны использовать свой, который содержит как цифры так и буквы и они должны чередоваться часто. Но мы не будем здесь этого делать.

3.1.2. isql Interactive SQL

Как упоминалось выше, isql есть аналог psql от PostgreSQL и SQL*Plus от Oracle. Вы можете набрать SQL-команду и получите результат запроса из БД.

Firebird идет с примером БД EMPLOYEE и мы будем использовать ее для тестирования наших SQL-команд. Чтобы начать, выполните следующую команду:

Она подключит вас к БД EMPLOYEE и выведет приглашение SQL> . Вы можете набрать ваши SQL-команды в приглашении. Не забывайте, перед тем как нажать клавишу чтобы выполнить команду, набрать точку с запятой ( ; ) в конце оператора чтобы закончить его.

Для теста, наберите следующую SQL-команду и нажмите

SQL> SELECT emp_no, full_name, job_code, job_country FROM employee;

Это должно вам дать:

Если вы хотите увидеть все таблицы в БД, наберите следующее:

SQL> SHOW TABLES;

Эта команда выдаст вам список всех таблиц в базе данных:

Чтобы выйти из isql, просто введите quit; и нажмите .

3.2. Создание вашей первой базы данных

Пока, мы выполняли наши команды как SYSDBA и использовали примеры идущие с Firebird. Теперь, мы создадим свою БД, создадим пользователя у которого будут права на просмотр и изменение БД, а также попробуем поработать с базой данных.

Чтобы создать нашу БД, нам нужно использовать утилиту isql . Firebird сохраняет свои БД под раздельными файлами и, по соглашению, с расширением .gdb. Помните, это лишь соглашение, так что вы можете сохранить БД с любым расширением которое захотите. Чтобы продемонстрировать это, мы во-первых создадим БД используя пользователя SYSDBA и сохраним ее в директории test в директории содержащейся в переменной окружения $INTERBASE_HOME.

Первое что мы создаем это директорию testdb в /opt/interbase (проверьте, что у вас есть соответствующие права над это директорией), перейдите в нее, затем запустите isql без параметров:

Потом мы выполняем команду CREATE DATABASE:

SQL> CREATE DATABASE ‘firstdb.gdb’ USER ‘sysdba’ PASSWORD ‘masterkey’;

Она создаст файл с именем firstdb.gdb в текущей директории. БД принадлежит SYSDBA. Теперь мы создадим очень простую таблицу SALES и заполним ее данными. Если вы уже знакомы с SQL, то следующие команды будут для вас легкими. Если нет, то вам возможно нужно прочесть стандарт ANSI SQL-92.

Для выхода из isql, просто введите quit; и нажмите .

3.3. Добавление пользователей и ролей

Теперь у нас есть БД, но наверное это не очень хорошая идея, для создания и администрирования всех БД использовать учетную запись SYSDBA. В некоторых случаях, например, если я работаю с несколькими БД принадлежащие другим людям или группам, я возможно захочу чтобы каждому пользователю или группе принадлежала их соответствующая БД, но чтобы они не смогли иметь доступа к другим базам. Другой сценарий может быть потребует создания proxy-пользователя который будет выполнять все операции над БД, но который не будет иметь всех прав суперпользователя SYSDBA.

В данном разделе мы создадим БД пользователей и назначим учетную запись пользователя у которого будут права на просмотр и обновление.

Для этой операции мы используем утилиту gsec . И так, предполагая что мы хотим создать пользователя с именем TestAdmin с паролем testadmin (я знаю, знаю, еще один слабый пароль) и дать ему права на просмотр, модификацию и удаление записей БД firstdb.gdb , мы выполняем следующие команды. Помните, что в пароле используются только первые восемь символов.

$ gsec -user SYSDBA – password masterkey

GSEC> add TestAdmin -pw testadmin -fname FirstDB -lname Administrator

Warning – maximum 8 significant bytes of password used

Дальше, мы открываем БД, создаем роль administrator для БД, назначаем соответствующие права для этой роли, затем разрешаем использовать пользователю TestAdmin эту роль.

$ isql firstdb.gdb -user SYSDBA -password masterkey

Database: firstdb.gdb, User: SYSDBA

SQL> GRANT SELECT, UPDATE, INSERT, DELETE ON sales_catalog TO administrator;

SQL> GRANT administrator TO TestAdmin;

Теперь, мы готовы для тестирования нашей базы данных.

3.4. Тестирование базы данных

Для начала, выйдете из gsec и isql, если вы этого еще не сделали. Мы подключемся к firstdb.gdb как TestAdmin , выполним некоторые запросы, а потом отключимся. Просто чтобы протестировать БД. Команды и их результат показаны ниже:

Если вы столкнетесь с какими-то SQL-ошибками, то вам нужно будет проверить по сслылкам в следующем разделе.

Если все работает, мои поздравления! Ваш Firebird готов к полету! Я все еще изучаю эту СУБД, так что если у вас есть любые советы, критика или что-нибудь новое чтобы вы хотели добавить в эту статью, пожалуйста пишите мне.

4. Дополнительные ссылки

В настоящее время, полные руководства по Firebird доступны только на IBPhoenix CD. Однако для дополнительной информации о его работе или SQL-командам которые он принимает, вы можете обратиться к руководствам от Interbase 6.0 которые доступны с веб-сайта IBPhoenix 2 . Более свежая документация доступна на IBPhoenix CD 3 .

Data Definition Guide;

Embedded SQL Guide;

Там в общем семь руководств и информация видимо достоверная для Firebird судя по моему опыту. Я использовал руководства Operations Guide и Language Reference для многих частей данного документа, а также для своей собственной работы.

Источник

Оцените статью