Eu instalei o postgresql no OSX. Quando executo o psql, recebo
$ psql
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5433"?
No entanto, em / etc / services
postgresql 5432/udp # PostgreSQL Database
postgresql 5432/tcp # PostgreSQL Database
# Tom Lane <tgl@sss.pgh.pa.us>
pyrrho 5433/tcp # Pyrrho DBMS
pyrrho 5433/udp # Pyrrho DBMS
5433 é ocupado por pyrrho, 5432 é atribuído à pág. Eu posso me conectar com
psql -p 5432
mas por que o psql pensa que é 5433 e como faço para que o psql pareça no lugar certo por padrão?
postgresql
port
psql
alta largura de banda
fonte
fonte
PGPORT
está definida: postgresql.org/docs/current/static/libpq-envars.htmlRespostas:
/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
elibpq
de um pacote diferente. Normalmente, isso ocorre quando eles executam o Postgres.app ou o homebrew Pg e se conectam aospsql
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 exemplopsql -h localhost -p 5433
. Você pode ter várias instâncias do PostgreSQL em execução. Verifique se você está se conectando à correta usandoselect version()
eSHOW 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 compsql -h
, por exemplopsql -h /tmp
.Uma solução mais limpa é corrigir seu sistema
PATH
para que opsql
elibpq
associado ao PostgreSQL que você está executando seja o primeiro encontrado noPATH
. 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.fonte
Resposta rápida no OSX, defina suas variáveis de ambiente.
Ou o que você precisar.
fonte
A porta padrão do Postgres é normalmente configurada em:
No Ubuntu, isso pode ser:
Procure
port
neste arquivo.fonte
~/PostgreSQL/data/pg96
Graças à @a_horse_with_no_name 's comentário , eu mudei minha definição PGPORT para 5432 em pg_env.sh. Isso resolveu o problema para mim. Não sei por que o postgres o definiu como 5433 inicialmente quando estava hospedando o serviço no 5432.
fonte
Parece que um dos motivos mais comuns para isso acontecer é se você instalar uma nova versão do PostgreSQL sem interromper o serviço de uma instalação existente. Essa também era uma dor de cabeça em particular. Antes de instalar ou atualizar, principalmente no OS X e usar o instalador com um clique do Enterprise DB, verifique o status da instalação antiga antes de continuar.
fonte
Também me deparei com esse problema, e havia dois servidores postgres em execução ao mesmo tempo. Eu desinstalei um deles e mudei a porta novamente para 5432 e funciona bem agora.
fonte
Para mim, no PgAdmin 4 no Mac OS High Sierra , clicar no banco de dados PostrgreSQL10 em Servidores na coluna esquerda e depois na guia Propriedades , mostrou 5433 como a porta em Conexão . (Não sei por que, porque escolhi o 5432 durante a instalação). De qualquer forma, cliquei no ícone Editar na guia Propriedades , mude para 5432 , salvei e resolvi o problema. Vai saber.
fonte