2012-09-17 32 views
25

El conseguir:Tratar de establecer postgres para la aplicación ROR, consiguiendo error - fe_sendauth: sin contraseña suministrada

An error has occurred: 

Error connecting to the server: fe_sendauth: no password supplied 

Ajustes en database.yml son los mismos que la configuración de la aplicación en otras máquinas.

¿Cómo puedo configurar las cosas para que no necesite una contraseña codificada?

Puedo ver el db ok usando PgAdmin-III.

Prefiero no tener la contraseña en database.yml ya que otras máquinas que usan esta aplicación no la tienen/necesitan, por lo que parece ser algo relacionado con mi instalación de Pg.

+0

Yo diría que tiene que mirar 'pg_hba.conf' y ver si ha agregado reglas' ident' o 'trust' para las otras DB; comparar con este. –

Respuesta

60

Necesita cambiar su cambio a pg_hba.conf. Aquí está un ejemplo de la mina:

pg_hba.conf:

TYPE DATABASE  USER   ADDRESS     METHOD 

host all    all    127.0.0.1/32   trust 

host all    PC    127.0.0.1/32   trust 

host all    all    ::1/128     trust 

Tenga en cuenta que trust significa que cualquier persona en address (en este caso localhost) puede conectarse como usuario de creación (o en este caso cualquier usuario de su elección) . Esto es realmente solo adecuado para configuraciones de desarrollo con datos sin importancia. No lo use en la producción.

+3

Gracias. Lamentablemente lo hice y reinicié postgres, pero no ayudó. Mismo error. –

+7

@MichaelDurrant ¿Seguro que se está conectando al servidor correcto y está editando el '' pg_hba.conf'' correcto? Pruebe 'SHOW hba_file;' en psql para encontrar 'pg_hba.conf'. También verifique los registros del servidor PostgreSQL. –

+0

Tuve que cambiar "PC" a "todos" para que esto funcione, ¡pero de lo contrario, gracias por esta respuesta! –

0

No se ha proporcionado una contraseña significa que la ha configurado para requerir la autenticación de contraseña y no se ha proporcionado ninguna contraseña. Aquí hay documentación para 9.0: http://www.postgresql.org/docs/9.0/static/auth-methods.html

Tenga en cuenta que la autenticación local se cambió de "ident" a "igual" en 9.1 para evitar confusiones. Consulte los documentos 9.1 en http://www.postgresql.org/docs/9.1/static/auth-methods.html

También tenga en cuenta que este es un conjunto de reglas ordenadas con el primer partido que rige. Además, local y localhost son diferentes. Local es para conexiones locales de socket de dominio UNIX, mientras que el host localhost sería para conexiones de red a localhost. Por lo tanto, parece que tienes que resolver algunos problemas, pero es de esperar que los documentos te ayuden.

9

@ rodrigo-zurek fue perfecto; tienes que cambiar el pg_hba.conf. Solo quiero agregar esta respuesta para los usuarios de OSX porque el pg_hba.conf está ubicado en un lugar diferente de manera predeterminada.

sudo su - postgres 
vim /Library/PostgreSQL/<YOUR_VERSION>/data/pg_hba.conf 

El valor por defecto tendrá md5 en la columna METHOD, pero reemplazar todos los que tienen trust:

# TYPE DATABASE  USER   ADDRESS     METHOD 

# "local" is for Unix domain socket connections only 
local all    all          trust 
# IPv4 local connections: 
host all    all    127.0.0.1/32   trust 
# IPv6 local connections: 
host all    all    ::1/128     trust 

A continuación, abre pgAdmin III dentro de sus aplicaciones/PostgreSQL 9.x, haga clic derecho en el base de datos (por ejemplo, PostgreSQL 9.4 (localhost)) y haga clic en Reload Configuration. Después de esto, pude rake db:create.

+0

¿Puede decirnos cómo editar 'pg_hba.conf' y guardar? Soy nuevo en Mac – Shana

0
#appveyor.yml 
services: postgresql 
test_script: 
    - SET PGUSER=postgres 
    - SET PGPASSWORD=Password12! 
    - PATH=C:\Program Files\PostgreSQL\9.6\bin\;%PATH% 
Cuestiones relacionadas