Se o PostgreSQL estiver rodando e ouvindo na porta 5432 de acordo com netstat
, mas quando você executar psql
você recebe um erro como:
psql: could not connect to database postgres: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
então, o mais provável é que você esteja usando o psql
de uma versão anterior do PostgreSQL que também está instalada no seu sistema. Esta versão provavelmente está configurada para usar um unix_socket_directory
diferente.
A melhor opção é definir sua variável de ambiente PATH
para apontar para o diretório que contém as versões corretas de psql
, createdb
, etc antes dos antigos.
Como alternativa, você pode usar conexões TCP / IP especificando explicitamente -h localhost
, por exemplo:
psql -h localhost ...
(e, portanto, createdb -h localhost ...
). Isso resultará na utilização de versões antigas dos comandos createdb
, psql
, etc, portanto, é melhor definir apenas o PATH
. O mesmo vale para usar -h
para definir o caminho do soquete unix, que é uma opção avançada.
Corrija sua variável de ambiente PATH
e tudo ficará bem. Você pode testar isso temporariamente com algo como o seguinte, em que você substitui /usr/pgsql-9.2/bin
pelo diretório bin
em sua instalação do PostgreSQL 9.2:
export PATH=/usr/pgsql-9.2/bin:$PATH
psql
Se isso funcionar, você precisará tornar a alteração permanente editando /etc/environment
, seu .bash_profile
ou outros arquivos de configurações apropriados. Procure por "ubuntu permanentemente definido PATH" para mais informações.