quarta-feira, 25 de abril de 2012

Linux - Instalando Firebird

Eae pessoal, blz?

Então, esta semana precisei instalar o Firebird em um sevidor Linux para o rodar o software LALUR em rede. Vou descrever abaixo os passos que executei e que podem ajudar quem esteja a procura desta solução.

Usei a versão do Linux CentOs 6.2 x64 e a versão 2.5.1 do Firebird que peguei no site http://www.firebirdsql.org/

Vamos considerar que o Firewall Iptables e o Selinux estejam desabilitados.

Quando você for fazer o download do Firebird, além das versões x86 e x64 terá que decidir se instalará o pacote Super Server ou Classic Server.

As diferenças entre as duas versões  você pode conferir neste documento criado pela equipe da comunidade firebird.
http://www.comunidade-firebird.org/cflp/downloads/CFLP_T017.PDF

Para a instalação utilizaremos o comando RPM, se quiser uma lista dos parâmetros que podem ser utilizados com o RPM acesse o link abaixo do Viva o Linux:
http://www.vivaolinux.com.br/artigo/Trabalhando-com-RPM

Então vamos lá, primeiro vou instalar a versão FirebirdCS-2.5.1.26351-0.amd64.rpm

Para instalar o pacote: rpm -ivh FirebirdCS-2.5.1.26351-0.amd64.rpm


Como podem ver já tivemos nosso primeiro problema, está faltando instalar essas libs.


Para instalar as libs, vou utilizar o comand "yum install nome_da_lib", veja nas imagens:



Beleza, agora com as libs instaladas, vamos tentar instalar o pacote: rpm -ivh FirebirdCS-2.5.1.26351-0.amd64.rpm


Agora instalou, veja a imagem:


Se você der o comando "more /etc/services |grep 3050" verá que foi criado uma entrada no arquivo "services" com a porta que será utilizada para conexão com o firebird.


A versão Classic Server do Firebird não cria um executável para que você possa iniciar e/ou parar o serviço, ele vincula o Firebird ao serviço "xinetd".

No caso ainda não tenho o " xinetd" instalado. Para instalar o pacote do xinetd: "yum install xinetd.x86_64"


Após instalar o pacote, reinicie o servidor.
Agora dê o comando "chkconfig --list", você verá que ali onde diz "serviços baseados no xinetd" está o "firebird" setado como "sim", significa que sempre que o "xinetd" for iniciado, o firebird também será.


Para parar e/ou iniciar o xinetd use o comando: /etc/init.d/xinetd start/stop/restart

Agora precisamos alterar a senha padrão do usuário SYSDBA do firebird.
Para isto vamos até /opt/firebird e de o comando "more SYSDBA.password".

Veja a linha ISC_PASSWD=1rqBa2eW está é a senha atual.


Para alterar a senha, entra no diretório /opt/firebird/bin e de o comando "./changeDBAPassword.sh"
Ele pedirá para você informar a senha atual e depois pedirá a nova senha.
Neste caso eu fiz a instalação do firebird para rodar o software LALUR, este software precisa que a senha do SYSDBA esteja como "masterkey", caso contrário ele não consegue conectar no banco de dados.


Agora falta apenas testarmos:

Vamos criar uma base "teste.gdb" e acessa-la localmente.
Acesse /opt/firebird/bin e de o comando "./isql"
Vai abrir um prompt "SQL>"
Então execute o comando: CREATE DATABASE '/tmp/teste.gdb' USER 'sysdba' PASSWORD 'masterkey' PAGE_SIZE 1024;
Depois: "quit;"
Veja que em /tmp foi criado um arquivo chamado "teste.gdb".
Para garantir o acesso a base, de o comando "chmod 777 teste.gdb" (Ao configurar um acesso externo, se o arquivo não estiver com permissão adequada, o acesso será negado)

Vamos agora criar um "Link", que será o Nome da base.
Vá até /opt/firebird/bin e digite o comando "./createAliasDB.sh nome_da_base caminho_do_arquivo.gdb"


Para conectarmos na base vamos fazer o seguinte:
Em /opt/firebird/bin execute o comando "./isql /tmp/teste.gdb -u sysdba -p masterkey"
Agora execute "SHOW DATABASE;"
Vai aparecer os dados da nossa base de teste.


Então pessoal, instalamos a versão Classic Server do Firebird 2.5.1, criamos uma base teste e nos conectamos nesta base. Agora para fazer um teste de outra maquina, você pode baixar um gerenciador de banco de dados firebird e informar os parâmetros para conectar no servidor.

Um gerenciador que baixei aqui foi o DBManager, tem varios na internet, é só pesquisar no Google.

Para fazer a instalação do Super Server, a única coisa que muda é que o Super Server cria o executável "firebird" dentro de /etc/init.d ao invés de vincula-lo ao "xinetd".

Para iniciar, parar ou reiniciar o serviço basta executar o comando "/etc/init.d/firebird start/stop/restart"

Para o firebird iniciar automaticamente ao ligar o servidor basta digitar o comando "chkconfig firebird on".

Outras observações:

Aqui um manual em português feito pela equipe do FirebirdSql para trabalhar com a base de dados Firebird:
http://www.firebirdsql.org/pdfmanual/Firebird-Commandline-Brazilian-Portuguese.pdf

Caso você tente instalar uma versão mais antiga do firebird (ex: 2.0) no CentOs 6.2, pode aparecer a mensagem de erro:


/opt/firebird/bin/gsec: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory

Essa mensagem aparece porque a versão atual do CentOs 6.2 tem alguma incompatibilidade com as Lib's que as versões mais antigas do Firebird utilizam.

Isto aconteceu comigo e então instalei a versão 2.5.1 do firebird que funcionou normal.

Outro problema que tive, é que como ja havia instalado a versão 2.0 do firebird, ao tentar instalar a 2.5.1 ele estava dando conflito de arquivos, dizendo que ja havia uma versão instalada.

Resolvi isto usando o comando rpm -Uvh Nome_do_Pacote2.5.1.

A opção -U atualiza o pacote que já está instalado para a versão que você está querendo instalar.

É isso aí pessoal!

Vlw










3 comentários: