#bancoDeDados, #configuração

Como solucionar o erro de domain socket no PostgreSQL


Olá pessoal.

Novamente ao instalar o PostgreSQL eu me esbarrei com o erro:

Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

Este é um erro conhecido e frequente, já tive ao instalar o PostgreSQL no Mac OS e agora tive ao instalar no Ubuntu em uma instância na Amazon AWS. O erro acontece ao tentar conectar no banco de dados, via psql ou pelo comandos do PostgreSQL (ex.: createuser).

Após várias pesquisas e testes cheguei à solução que compartilho aqui.

Por algum motivo que desconheço o PostgreSQL não define nenhum valor para a variável unix_socket_directory, mas de alguma forma a criação da conexão fica procurando pela pasta /var/run/postgresql.

A primeira coisa a ser feita é definir um local para unix_socket_directory, e este local não pode ser dentro da pasta /var/run/postgresql porque até onde vi o conteúdo desta pasta não é persistente e o erro volta a acontecer após um reboot.

Então no arquivo /usr/local/pgsql/data/postgresql.conf defina um valor para a variável unix_socket_directory:

unix_socket_directory = '/tmp/postgresql'

Agora é preciso criar a pasta que será utilizada pelo socket:

sudo mkdir /tmp/postgresql

E definir as permissões para o usuário postgres e para o grupo de usuários denominado ubuntu:

sudo chown -R postgres /tmp/postgresql
sudo chgrp -R ubuntu /tmp/postgresql

Também é preciso criar o diretório de dados:

sudo mkdir -p /usr/local/pgsql/data

E definir as permissões:

sudo chown -R postgres:postgres /usr/local/pgsql/

Feito isso iremos alterar o acesso para o usuário postgres:

sudo su - postgres

Acesse o diretório dos executáveis:

cd /usr/lib/postgresql/9.1/bin/

Inicialize a área de dados:

./initdb -D /usr/local/pgsql/data

Inicie o servidor PostgresSQL:

./postgres -D /usr/local/pgsql/data

Eu também alterei o conteúdo do script de inicialização do PostgreSQL para passar as novas configurações. E o meu arquivo /etc/init.d/postgresql ficou assim:

#!/bin/sh -e
PGVER='9.1'
BINPATH="/usr/lib/postgresql/$PGVER/bin/"
PGUSER='postgres'
PGLOG='/tmp/postgresql/pgsql.log'
PGDIR='/usr/local/pgsql/data'

start(){
   cd $BINPATH
   su $PGUSER -c "./pg_ctl -D $PGDIR -l $PGLOG start"
}

stop(){
   cd $BINPATH
   su $PGUSER -c "./pg_ctl -D $PGDIR -l $PGLOG stop"
}

case "$1" in
   start)
      start
      ;;
   stop)
      stop
      ;;
   restart)
      stop
      start
      ;;
   *)
      echo "Usage: $0 {start|stop|restart}"
      exit 1
      ;;
esac

exit 0

Agora é possível iniciar, parar e reiniciar o PostgreSQL com os comandos:

sudo /etc/init.d/postgresql start
sudo /etc/init.d/postgresql stop
sudo /etc/init.d/postgresql restart

E acessar a interface do PostgreSQL com o comando:

sudo su - postgres
psql

That’s all folks!!!

Até breve 😉

Referências:

http://goo.gl/HQC3j

http://goo.gl/UZRGT

http://goo.gl/j4eTP

Padrão
#prosa

Projeto RoR nas nuvens – Parte 1


Olá pessoal.

Já tem um bom tempo que venho tentando me aprofundar nos estudos de Ruby on Rails. Neste intuito utilizei os livros: Use a cabeça: Rails e Desenvolvendo Aplicações Web com Ruby on Rails 2.3 e PostgreSQL. Confesso que não cheguei a finalizá-los, porque apesar deles serem absurdamente práticos senti a necessidade de começar um projeto “de verdade”.

Sendo assim meu propósito é desenvolver um projeto real e ir documentando através dos posts.

Pretendo utilizar neste projeto as tecnologias atuais e free:

  • Ubuntu Maverick
  • Ruby
  • Rails
  • jQuery
  • CSS3
  • HTML5
  • PostgreSQL
  • Git
  • Github
  • Heroku

Também pretendo utilizar algumas metodologias como TDD.

Por enquanto é isso, o próximo post será sobre configuração do Ruby on Rails. Já postei sobre a configuração do RoR aqui e aqui mas ocorreram algumas mudanças nestas últimas versões.

Até la 😉

Padrão
#bancoDeDados

PostgreSQL na prática


Assim como grande parte dos desenvolvedores, meu primeiro contato com banco de dados foi utilizando o MySQL.  Com o passar do tempo tive a oportunidade de trabalhar com o PostgreSQL que é um sistema gerenciador de banco de dados objeto relacional. Desde então eu passei a utilizá-lo principalmente em projetos em que utilizo o Hibernate.

Atualmente administro bases de dados alocadas no PostgreSQL e para isso tive que conhecê-lo além das conexões com os sistemas. Portanto, meu objetivo com este post é mostrar o uso de alguns comandos básicos que auxiliam o desenvolvedor na manutenção da base de dados.

Se você ainda não instalou o PostgreSQL, dê uma olhada neste post.

Comandos usados no terminal

Logar no terminal como root e alterar para o usuário postgres:


# su - postgres

Exportar/Backup/Dump de apenas um banco de dados:


$ pg_dump nome_do_banco > nomeDoArquivoDeSaida

Importar/Restore de apenas um banco de dados:


$ psql nome_do_banco < nomeDoArquivoDeEntrada

Exportar/Backup/Dump de todos os banco de dados:


$ pg_dumpall > nomeDoArquivoDeSaida

Importar/Restore de todos os banco de dados:


$ psql -f nomeDoArquivoDeEntrada

Criar usuário:


$ createuser nome_do_usuario

Deletar usuário:


$ dropuser nome_do_usuario

Criar banco de dados:


$ createdb nome_do_banco

Deletar banco de dados:


$ dropdb nome_do_banco

Entrar no shell interativo do PostgreSQL:


$ psql

Comandos no shell interativo do PostgreSQL

Criar usuário:


postgres=# CREATE ROLE nome_do_usuario;

Criar banco de dados:


postgres=# CREATE DATABASE nome_do_banco;

Cria um banco de dados com um usuário/dono específico:


postgres=# CREATE DATABASE nome_do_banco OWNER nome_do_usuario;

Alterar senha:


postgres=# ALTER USER nome_do_usuario WITH PASSWORD ‘senha’;

Deletar usuário:


postgres=# DROP ROLE nome_do_usuario;

Deletar/Drop banco de dados:


postgres=# drop database nome_do_banco;

Para sair do shell interativo do PostgreSQL:


postgres=# \q

Espero que possa ser útil.
Até breve 😉

Padrão
#configuração

Configurando o Ruby on Rails


No post anterior configuramos o ambiente para conhecermos o Ruby. Agora vamos configurá-lo para desbravarmos o Rails.

Instale o PostgreSQL:


zypper in postgresql

zypper in postgresql-server

Aqui tem um passo-a-passo das configurações iniciais do PostgreSQL no openSUSE.

Através de uma breve pesquisa com meus colegas, detectei que o uso de IDE para desenvolvimento com RoR não é muito usual, mas um bom editor de texto é fundamental.

Optei por utilizar o Kate pois ele disponibiliza uma listagem de diretórios e um terminal de forma integrada à área de edição.

E para instalar o Kate:


zypper install kate

Vamos então adicionar o pacote do Rails:


gem install rails --include-dependencies

E a interface de acesso ao PostgreSQL:


gem install postgres-pr --include-dependencies

Ambiente pronto!

No próximo post criaremos nosso primeiro projeto RoR \o/

Até breve 😉

Padrão