PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

confusão de porta postgresql 5433 ou 5432?


/etc/services é apenas consultivo, é uma lista de portas conhecidas. Isso não significa que algo está realmente sendo executado nessa porta ou que o serviço nomeado será executado nessa porta.

No caso do PostgreSQL é comum usar a porta 5432 se estiver disponível. Se não for, a maioria dos instaladores escolherá a próxima porta gratuita, geralmente 5433.

Você pode ver o que está realmente em execução usando o netstat ferramenta (disponível no OS X, Windows e Linux, com sintaxe de linha de comando variando entre os três).

Isso é ainda mais complicado em sistemas Mac OS X pela bagunça horrível de diferentes pacotes PostgreSQL - a versão antiga do PostgreSQL da Apple incorporada ao sistema operacional, Postgres.app, Homebrew, Macports, o instalador EnterpriseDB, etc etc.

O que acaba acontecendo é que o usuário instala o Pg e inicia um servidor a partir de um pacote, mas usa o psql e libpq cliente de uma embalagem diferente. Normalmente isso ocorre quando eles estão executando Postgres.app ou homebrew Pg e conectando com o psql que acompanha o SO. Não só eles às vezes têm portas padrão diferentes, mas o Pg que acompanha o Mac OS X tem um caminho de soquete unix padrão diferente , portanto, mesmo que o servidor esteja sendo executado 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, portanto, certifique-se de estar se conectando à correta usando select version() e SHOW data_directory; .

Você também pode especificar um diretório de soquete unix; verifique os unix_socket_directories configuração da instância do PostgreSQL à qual você deseja se conectar e especifique isso 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 é o que é encontrado primeiro no PATH . Os detalhes disso dependem da sua versão do Mac OS X e de quais pacotes Pg você instalou. Eu não uso Mac e não posso oferecer muito mais detalhes desse lado sem gastar mais tempo do que o disponível atualmente.