/etc/services
é apenas informativo, é uma lista de portas conhecidas. Isso não significa que algo esteja realmente em execução nessa porta ou que o serviço nomeado será executado nessa porta.
No caso do PostgreSQL, é típico usar a porta 5432, se estiver disponível. Caso contrário, a maioria dos instaladores escolherá a próxima porta livre, geralmente 5433.
Você pode ver o que realmente está sendo executado usando a netstat
ferramenta (disponível no OS X, Windows e Linux, com a sintaxe da linha de comando variando entre os três).
Isso é ainda mais complicado nos sistemas Mac OS X pela bagunça horrível dos diferentes pacotes do PostgreSQL - a versão antiga do PostgreSQL da Apple incorporada ao sistema operacional, Postgres.app, Homebrew, Macports, instalador do EnterpriseDB, etc.
O que acaba acontecendo é que o usuário instala a página e inicia um servidor a partir de um pacote, mas usa o cliente psql
e libpq
de um pacote diferente. Normalmente, isso ocorre quando eles executam o Postgres.app ou o homebrew Pg e se conectam aos psql
que são fornecidos com o sistema operacional. Às vezes, eles não apenas têm portas padrão diferentes, mas a página que acompanha o Mac OS X possui um caminho de soquete unix padrão diferente ; portanto, mesmo se o servidor estiver executando na mesma porta, ele não estará ouvindo o mesmo soquete unix.
A maioria dos usuários de Mac resolve isso usando apenas tcp / ip com psql -h localhost
. Você também pode especificar uma porta, se necessário, por exemplo psql -h localhost -p 5433
. Você pode ter várias instâncias do PostgreSQL em execução. Verifique se você está se conectando à correta usando select version()
e SHOW data_directory;
.
Você também pode especificar um diretório de soquete unix; verifique a unix_socket_directories
configuração da instância do PostgreSQL à qual você deseja se conectar e especifique-a com psql -h
, por exemplo psql -h /tmp
.
Uma solução mais limpa é corrigir seu sistema PATH
para que o psql
e libpq
associado ao PostgreSQL que você está executando seja o primeiro encontrado no PATH
. Os detalhes dependem da versão do Mac OS X e dos pacotes Pg que você instalou. Não uso o Mac e não posso oferecer muito mais detalhes desse lado sem gastar mais tempo do que o atualmente disponível.
PGPORT
está definida: postgresql.org/docs/current/static/libpq-envars.html