Su conexión falló porque de manera predeterminada se psqlconecta a través de sockets UNIX mediante peerautenticació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 devy luego iniciar sesión como devo usarlo sudo -u dev psql test_developmentpara 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.conflí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 peery otros que requieren contraseñas.
Después de cambiar pg_hba.confsi 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.confprobablemente 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.