Una vez que tiene el postmaster en ejecución, al tratar de conectar con él mediante una aplicación cliente puede producirse un fallo por varias razones. Los ejemplos de mensajes de error mostrados aquí son para clientes basados en las versiones recientes de libpq; los clientes basados en otras bibliotecas de interfaz pueden producir otros mensajes, con más o menos información.
connectDB() -- connect() failed: Connection refused Is the postmaster running (with -i) at 'server.joe.com' and accepting connections on TCP/IP port '5432'?Este el es fallo genérico de 'No puedo encontrar un postmaster con el que comunicarme'. Puede ocurrir algo así cuando se intenta una comunicación TCP/IP o mediante socket Unix con un postmaster local:
connectDB() -- connect() failed: No such file or directory Is the postmaster running at 'localhost' and accepting connections on Unix socket '5432'?La última línea es útil para verificar que el cliente está tratando de conectar donde se supone que debe hacerlo. Si en realidad no hay ningún postmaster ejecutándose allí, el mensaje de error del núcleo será del tipo de 'Conexión rehusada' o de 'No existe el fichero o directorio', como los anteriores. (Es particularmente importante tener en cuenta que 'Conexión rehusada' en este contexto no no significa que el postmaster haya recibido la petición de conexión y la haya rechazado; en este caso se produce un mensaje diferente, como se verá.) Otros mensajes de error, como el de "Connection timed out" sí indican problemas más importantes, como la falta de conectividad en la red.
No pg_hba.conf entry for host 123.123.123.123, user joeblow, database testdbEsto es lo más probable que obtenga si consigue contactar con un postmaster, pero éste no quiere hablar con usted. Como sugiere el mensaje, el postmaster rehúsa la petición de conexión porque no encuentra un renglón de autorización en su fichero de configuración pg_hba.conf
Password authentication failed for user 'joeblow'Los mensajes como éste indican que ha contactado con el postmaster, y éste está dispuesto a hablar con usted, pero no lo hará hasta que supere el método de autorización especificado en el fichero pg_hba.conf. Compruebe la clave que está enviando, o su programa IDENT o Kerberos, si el mensaje de error menciona alguno de esos tipos de autenticación.
FATAL 1: SetUserId: user 'joeblow' is not in 'pg_shadow'Esta es otra variante de fallo de autenticación: no se ha ejecutado la orden de Postgres 'create_user' para el nombre de usuario indicado.
FATAL 1: Database testdb does not exist in pg_databaseNo hay base de datos con ese nombre bajo el control de ese postmaster. Nótese que si no especifica el nombre de la base de datos, se aplica por defecto su nombre de usuario en Postgres, lo que puede no ser lo correcto.