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

Não é possível conectar ao PostgreSQL local


Isso realmente parece um erro de permissões de arquivo. Soquetes de domínio Unix são arquivos e têm permissões de usuário como qualquer outro. Parece que o usuário OSX que está tentando acessar o banco de dados não tem permissões de arquivo para acessar o arquivo de soquete. Para confirmar isso fiz alguns testes no Ubuntu e no psql para tentar gerar o mesmo erro (incluído abaixo).

Você precisa verificar as permissões no arquivo de soquete e seus diretórios /var e /var/pgsql_socket . Seu aplicativo Rails (usuário OSX) deve ter permissões de execução (x) nesses diretórios (de preferência conceder permissões a todos) e o soquete deve ter permissões completas (wrx). Você pode usar ls -lAd <file> para verificar isso, e se algum deles for um link simbólico, você precisa verificar o arquivo ou o diretório para o qual o link aponta.

Você pode alterar as permissões no diretório para você mesmo, mas o soquete é configurado pelo postgres em postgresql.conf . Isso pode ser encontrado no mesmo diretório que pg_hba.conf (Você terá que descobrir qual). Depois de definir as permissões, você precisará reiniciar o postgresql.
# postgresql.conf should contain...
unix_socket_directory = '/var/run/postgresql'       # dont worry if yours is different
#unix_socket_group = ''                             # default is fine here
#unix_socket_permissions = 0777                     # check this one and uncomment if necessary.

EDITAR:

Fiz uma pesquisa rápida no google que você pode querer verificar para ver se é relevante. Isso pode resultar em qualquer tentativa de find seu arquivo de configuração falhando.

http://www.postgresqlformac.com/server/howto_edit_postgresql_confi.html

Mensagens de erro:

Usuário não encontrado em pg_hba.conf
psql: FATAL:  no pg_hba.conf entry for host "[local]", user "couling", database "main", SSL off

Autenticação de senha com falha do usuário:
psql: FATAL:  password authentication failed for user "couling"

Arquivo de soquete unix ausente:
psql: 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"?

O soquete Unix existe, mas o servidor não o escuta.
psql: could not connect to server: Connection refused
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

Permissões de arquivo inválidas no arquivo de soquete unix :
psql: could not connect to server: Permission denied
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?