First, the meanings of the fields are:
# local DATABASE USER METHOD [OPTIONS]
# host DATABASE USER ADDRESS METHOD [OPTIONS]
# host[no]ssl DATABASE USER ADDRESS METHOD [OPTIONS]
The attempt is:
host = “[local]” (meaning through a Unix domain socket)
user = “pgadmin”
database = “postgres”
SSL = off
Now your lines:
local all postgres trust
does not match because the user pgadmin is not postgres
host all all 0.0.0.0/0 trust
does not match because host
only matches TCP/IP connections and [local] is not a TCP/IP connection.
hostnossl all all 0.0.0.0/0 trust
does not match for the same reason than the previous line.
If you want to "trust" everyone locally through the Unix domain socket, you may change the first line to:
local all all trust