AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 21587
Accepted
Meltemi
Meltemi
Asked: 2012-07-27 12:46:00 +0800 CST2012-07-27 12:46:00 +0800 CST 2012-07-27 12:46:00 +0800 CST

O PostgreSQL está sendo executado localmente, mas não consigo me conectar. Por quê?

  • 772

Recentemente atualizei minha máquina do Mac OS X Lion (10.7.4) para o Mountain Lion (10.8) e acho que atrapalhou minha instalação do PostgreSQL. Ele foi instalado originalmente via Homebrew. Eu não sou um DBA, mas espero que alguém possa me dizer como solucionar isso.

Não consigo me conectar (mas consegui antes do pré-Mountain Lion):

$ psql -U rails -d myapp_development
psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

Mas o Postgres ainda está claramente em execução:

$ ps aux | grep postgres
meltemi          2010   0.0  0.0  2444124   5292   ??  Ss   Wed01PM   0:00.02 postgres: rails myapp_development [local] idle    
meltemi           562   0.0  0.0  2439312    592   ??  Ss   Wed12PM   0:02.28 postgres: stats collector process       
meltemi           561   0.0  0.0  2443228   1832   ??  Ss   Wed12PM   0:01.57 postgres: autovacuum launcher process       
meltemi           560   0.0  0.0  2443096    596   ??  Ss   Wed12PM   0:02.89 postgres: wal writer process       
meltemi           559   0.0  0.0  2443096   1072   ??  Ss   Wed12PM   0:04.01 postgres: writer process       
meltemi           466   0.0  0.0  2443096   3728   ??  S    Wed12PM   0:00.85 /usr/local/bin/postgres -D /usr/local/varpostgres -r /usr/local/var/postgres/server.log

E está respondendo a consultas (tanto para um banco de dados de teste quanto para o banco de dados de desenvolvimento) de um aplicativo Rails local

  User Load (0.2ms)  SELECT "users".* FROM "users" 
  Rendered users/index.html.haml within layouts/application (1.3ms)

Parece não haver nenhum /var/pgsql_socket/diretório, muito menos o /var/pgsql_socket/.s.PGSQL.5432arquivo de soquete mencionado acima!?! Talvez a instalação do Mountain Lion tenha apagado isso?

$ ls -l /var/ | grep pg
drwxr-x---   2 _postgres  _postgres    68 Jun 20 16:39 pgsql_socket_alt

Como posso solucionar isso?

postgresql psql
  • 14 14 respostas
  • 152441 Views

14 respostas

  • Voted
  1. Best Answer
    Will
    2012-07-27T14:56:05+08:002012-07-27T14:56:05+08:00

    Descobri que tinha um problema extremamente semelhante, ou seja, que o postgres estava abrindo um soquete em /var/pgsql_socket_altque nenhum dos meus softwares esperava, mas a solução para o meu problema não era apenas um problema com o meu arquivo $PATH.

    Eu tive que criar o diretório /var/pgsql_socket, chown-o para mim mesmo e definir (localizado em unix_socket_directory) para esse diretório, então usar o binário para iniciar o servidor postgres correto com sucesso (que é onde entra - certifique-se de resolver para , ou apenas sempre chame-o explicitamente).postgresql.conf/usr/local/var/postgrespg_ctl/usr/local/bin$PATHwhich pg_ctl/usr/local/bin/pg_ctl

    Isso pode ajudar outros usuários que encontrarem essa pergunta por meio da /var/pgsql_socket_altmenção.

    • 31
  2. Daniel Vérité
    2012-07-27T14:06:42+08:002012-07-27T14:06:42+08:00

    Uma explicação plausível e típica seria que o psqlque vem com o homebrew é /usr/local/bin/psqldiferente daquele que estaria no seu $PATH, como /usr/bin/psql(agregado com o OS X). Você pode tentar com o caminho completo:

    $ /usr/local/bin/psql -U rails -d myapp_development

    Além disso, há algo bastante incomum na pssaída de sua pergunta: o servidor postgres está sendo executado em um meltemiusuário Unix, enquanto geralmente o postgresusuário Unix dedicado é usado para isso.

    • 10
  3. Miguel
    2012-09-13T09:29:36+08:002012-09-13T09:29:36+08:00

    Tentar:

    psql -U rails -d myapp_development -h localhost
    

    ou

    psql -U rails -d myapp_development -h 127.0.0.1
    
    • 4
  4. happynix
    2015-11-03T10:18:23+08:002015-11-03T10:18:23+08:00

    Não conheço nenhum arquivo de configuração para o cliente psql. No entanto, o psql respeita várias variáveis ​​de ambiente que se correlacionam com as opções de linha de comando.

    Então, para que o psql use automaticamente o socket de sua escolha, você pode definir a variável PGHOST para o diretório que contém o socket. ou seja

    PGHOST=/var/pgsql_socket_alt
    psql -d mydatabsase
    
    • 4
  5. Foot
    2013-01-16T12:51:19+08:002013-01-16T12:51:19+08:00

    Atrasado, mas achei isso útil: http://tammersaleh.com/posts/installing-postgresql-for-rails-3-1-on-lion

    Isso foi para o Lion, mas eu estava tendo os mesmos problemas deste tópico depois de atualizar da 10.6.8 para o Mountain Lion e instalar o PostgreSQL via HomeBrew antes na 10.6.8. Eu também tinha a pasta misteriosa /var/pgsql_socket_altpós-atualização, mas acabei de removê-la e criei /var/pgsql_socketcomo sugerido por @wolftron. No entanto, essa não foi a solução final.

    Se eu deixasse unix_socket_directoryem branco/comentasse em postgresql.conf, quaisquer projetos existentes antes da atualização reclamariam que o soquete /var/pgsql_socketestava faltando. Mas se eu alterasse conf e hard-coded var/pgsql_socket, quaisquer novos projetos reclamariam que o soquete /tmpestava faltando. Muito frustrante... até que reinstalei pg gemem um projeto pré-10.8 ( gem uninstall pg && gem install pg) e deixei unix_socket_directorycomentado no confarquivo. Após uma rápida pg_ctlreinicialização do servidor, os projetos novos e antigos funcionaram. Meu soquete pgsql vive /tmpagora, fwiw.

    Nota lateral: se você estiver usando o activerecord-postgresql-adaptergem, desinstale-o primeiro, reinstale o pg e instale activerecord-postgresql-adapternovamente.

    • 3
  6. Graham Ashton
    2013-04-19T05:11:31+08:002013-04-19T05:11:31+08:00

    Acabei de me inscrever no dba SE, então não consigo comentar sobre o post relevante (que crock!).

    No entanto, eu estava confiante de que estava no mesmo barco que @thure. Eu tinha certeza de que /usr/local/bin estava antes no meu PATH do que /usr/bin, tinha verificado com quais binários o shell tinha hash whiche type, etc.

    Eu vi os mesmos sintomas que @thure. Então tive uma epifania; Percebi que reconstruí a pggem (estou usando Ruby) em um shell cujo PATH foi afetado negativamente pelo path_helper do Mac (que é executado em /etc/profile e coloca /usr/bin antes de /usr/local/bin) .

    Desinstalei o pg e o reinstalei em um shell cujo PATH estava correto. De repente eu poderia conectar!

    Portanto, certifique-se de recompilar suas ligações de linguagem, e deixe-as encontrar a cópia correta de (presumivelmente) pg_config.

    • 2
  7. eyemana
    2014-07-03T09:54:27+08:002014-07-03T09:54:27+08:00

    Não consigo encontrar rapidamente o link onde encontrei esta pepita, mas funcionou para mim.

    export PHOST=localhost

    Ah, aqui está o link. https://stackoverflow.com/questions/13868730/socket-file-var-pgsql-socket-s-pgsql-5432-missing-in-mountain-lion-os-x-ser

    • 2
  8. Erik Trautman
    2013-05-18T12:49:04+08:002013-05-18T12:49:04+08:00

    Encontrei esta resposta: https://stackoverflow.com/questions/10763143/in-rails-couldnt-create-database-for-adapter-postgresql E, por mais simples que fosse, funcionou para mim $bundle update... voltou a funcionar.

    • 1
  9. Danny Roberts
    2013-11-17T07:05:26+08:002013-11-17T07:05:26+08:00

    Descobri que vincular o local real ao local esperado funcionou muito bem:

    sudo ln -s /var/pgsql_socket_alt /var/pgsql_socket
    

    ao longo das linhas da resposta aceita por @thure, mas mais simples.

    • 1
  10. rdiddly
    2016-06-08T07:32:37+08:002016-06-08T07:32:37+08:00

    Aqui está, 2016, El Capitan está lá fora, e a Apple continua mudando as coisas. O Postgres é instalado como parte do SO, e o arquivo de configuração do postgres define a propriedade unix_socket_directories em postgresql.conf como /tmp. O soquete está em /tmp/.s.PGSQL.5432. Consegui contornar o problema executando o seguinte:

    sudo ln -s /tmp /var/pgsql_socket
    

    Espero que isso ajude alguém.

    • 1

relate perguntas

  • Posso ativar o PITR depois que o banco de dados foi usado

  • Práticas recomendadas para executar a replicação atrasada do deslocamento de tempo

  • Os procedimentos armazenados impedem a injeção de SQL?

  • Sequências Biológicas do UniProt no PostgreSQL

  • Qual é a diferença entre a replicação do PostgreSQL 9.0 e o Slony-I?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como ver a lista de bancos de dados no Oracle?

    • 8 respostas
  • Marko Smith

    Quão grande deve ser o mysql innodb_buffer_pool_size?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    restaurar a tabela do arquivo .frm e .ibd?

    • 10 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Como selecionar a primeira linha de cada grupo?

    • 6 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve