Su conexión falló porque de manera predeterminada se psql
conecta a través de sockets UNIX mediante peer
autenticación, que requiere que el usuario actual de UNIX tenga el mismo nombre de usuario que psql
. Por lo tanto, tendrá que crear el usuario UNIX dev
y luego iniciar sesión como dev
o usarlo sudo -u dev psql test_development
para acceder a la base de datos (y nopsql
debe solicitar una contraseña).
Si no puede o no desea crear el usuario UNIX, como si solo desea conectarse a su base de datos para consultas ad hoc , forzar una conexión de socket usando psql --host=localhost --dbname=test_development --username=dev
(como lo señala la respuesta de @meyerson) resolverá su problema inmediato.
Pero si tiene la intención de forzar la autenticación de contraseña a través de sockets Unix en lugar del método de pares, intente cambiar la siguiente pg_hba.conf
línea *:
de
# TYPE DATABASE USER ADDRESS METHOD
local all all peer
a
# TYPE DATABASE USER ADDRESS METHOD
local all all md5
Por supuesto, también puede crear reglas más específicas para una base de datos o usuario específico, con algunos usuarios que tienen peer
y otros que requieren contraseñas.
Después de cambiar pg_hba.conf
si PostgreSQL se está ejecutando, deberá volver a leer la configuración volviendo a cargar ( pg_ctl reload
) o reiniciando ( sudo service postgresql restart
).
* El archivo pg_hba.conf
probablemente estará en/etc/postgresql/9.x/main/pg_hba.conf
Editado: Comentarios de @Chloe, @JavierEH, @Jonas Eicher, @fccoelho, @Joanis, @Uphill_What comentarios incorporados en la respuesta.