Logo

FirebirdSQL no Linux

Instalação via instalador oficial (Debian/Ubuntu).

FirebirdSQL

O FirebirdSQL é um banco de dados relacional open source, leve e poderoso, derivado do InterBase da Borland. Ele roda em Windows, Linux, macOS e ARM, e é amplamente usado em sistemas comerciais, ERP e aplicações embarcadas.

Pontos positivos do FirebirdSQL

Instalação

O FirebirdSQL não é empacotado para Debian/Ubuntu da forma como já foi no passado. Atualmente, o FirebirdSQL inclui seu próprio instalador oficial. Antes de prosseguir, instale a biblioteca libtommath, que é uma dependência:

sudo apt install -y libtommath-dev

Agora vá até a página oficial do FirebirdSQL e baixe a última versão para Linux:

https://firebirdsql.org/downloads

Download do Firebird (página oficial)

Digamos que você tenha baixado o arquivo em ~/Downloads. Vamos descompactá-lo:

cd ~/Downloads
tar zxvf Firebird-5.0.3.1683-0-linux-x64.tar.gz

A descompressão irá criar uma subpasta. Entre nela:

cd Firebird-5.0.3.1683-0-linux-x64/

E execute o instalador:

sudo ./install.sh
Senha do SYSDBA

Durante a instalação, será perguntado qual será a senha do SYSDBA. Informe a que desejar (inclusive masterkey se for usar em desenvolvimento).

Banco de dados Firebird - Grupo firebird

O serviço do FirebirdSQL é mantido por um usuário com permissões restritas chamado firebird. Isso aumenta a segurança em sistemas POSIX, mas impede que outros usuários acessem bancos localmente (não confundir com acesso a localhost), pois somente o usuário/grupo firebird tem acesso aos arquivos.

Para contornar isso, coloque seu usuário no grupo firebird:

sudo usermod -aG firebird "$USER"
newgrp firebird

Para conferir:

getent group firebird

Se o seu login aparecer no grupo firebird, é um ótimo indicativo de que a operação foi realizada com sucesso.

Banco de dados Firebird - SQL Client

O “SQL Client” é a biblioteca que permite conectividade com o banco. Sem ela, outros programas podem não conseguir conectar-se ao Firebird.

Confira se a biblioteca está presente no sistema:

ls -l /lib64/libfbclient.so
Debian/Ubuntu

Em Debian/Ubuntu, o diretório /lib64 pode não existir (ou a biblioteca pode estar em outro caminho, como /usr/lib/x86_64-linux-gnu). Se este teste falhar, use:

sudo find /opt/firebird -name 'libfbclient.so*' -maxdepth 3
ldconfig -p | grep -i fbclient

Se a biblioteca não estiver no PATH do sistema e isso estiver causando problemas em programas clientes, você pode criar um link simbólico:

[ -f /opt/firebird/lib/libfbclient.so ] && sudo ln -s /opt/firebird/lib/libfbclient.so /lib64/libfbclient.so

Confira novamente:

ls -l /lib64/libfbclient.so

Alterando a senha do SYSDBA

O SYSDBA é o equivalente ao “root” no Linux (ou “sa” no MSSQL), isto é, tem plenos poderes. Após a instalação, a forma padrão de alterar senhas é via isql.

sudo /opt/firebird/bin/isql /opt/firebird/security5.fdb

Nesse tipo de conexão, você não precisa informar usuário e senha, pois é uma conexão local direta ao arquivo (não é “localhost”). Uma vez conectado:

alter user SYSDBA password 'masterkey';
commit;
quit;

Para listar usuários que começam com “A” (em vez de usar SHOW USERS):

SELECT sec$user_name FROM sec$users
where sec$user_name like 'a%';

Permissões

Se for copiar arquivos de banco (geralmente .fdb) para o servidor, não copie para o seu $HOME, pois o usuário firebird normalmente não tem acesso lá. Use uma pasta fora do $HOME, por exemplo:

sudo mkdir -p /var/fdb

Dê permissão com bit sticky para as subpastas herdarem do pai (escrita para o grupo firebird, leitura para os demais):

sudo chmod 1775 /var/fdb

Depois de copiar arquivos, pode ser necessário ajustar dono/permissões:

sudo chown -R firebird:firebird /var/fdb/*
sudo chmod -R 664 /var/fdb/*

Variáveis de ambiente

Essas variáveis podem ser usadas para evitar digitar usuário e senha em utilitários. Como elas ficarão no seu perfil, apenas você e o root terão acesso.

Edite o arquivo ~/.bash_profile:

editor ~/.bash_profile

E acrescente:

export FIREBIRD_MSG=/opt/firebird
export ISC_USER=SYSDBA
export ISC_PASSWORD=masterkey

Para testar:

echo $ISC_USER

Variáveis de ambiente globais

Para variáveis globais (todos os usuários/serviços), edite:

sudo editor /etc/environment.d/999-firebird.conf

Conteúdo:

FIREBIRD_MSG=/opt/firebird
ISC_USER=SYSDBA
ISC_PASSWORD=masterkey
Observação

Nesse arquivo não usamos export porque não é um script, e sim um arquivo de configuração lido no boot. Reinicie o sistema para aplicar.

Ajustando o PATH

O FirebirdSQL costuma ser instalado em /opt/firebird, e utilitários como isql e gbak ficam em /opt/firebird/bin. Para evitar digitar caminhos longos, acrescente esse diretório ao PATH do sistema:

sudo editor /etc/profile.d/999-firebird-path.sh

Conteúdo:

# Adiciona o Firebird ao PATH do sistema
# Torna o caminho acessível a todos os usuários de login
if [ -d /opt/firebird/bin ]; then
  PATH="$PATH:/opt/firebird/bin"
  export PATH
fi

Dê permissão de leitura global:

sudo chmod 644 /etc/profile.d/999-firebird-path.sh

Para testar em uma sessão atual:

source /etc/profile.d/999-firebird-path.sh
echo $PATH

← Voltar para o Guia Firebird