"Nick Renders" <postgres@xxxxxxxxxx> writes: > [ pg_upgrade fails with ] > connection to database failed: fe_sendauth: no password supplied > could not connect to source postmaster started with the command: > "/Library/PostgreSQL/11/bin/pg_ctl" -w -l "pg_upgrade_server.log" -D > "/Volumes/Postgres_Data/PostgreSQL/11/data" -o "-p 49156 -b -c > listen_addresses='' -c unix_socket_permissions=0700 -c > unix_socket_directories='/Volumes/Free/Upgrade'" start > According to the documentation, the connection should be established > with the data in the .pgpass file. Its contents look like this (the > password has been changed) : > localhost:49155:*:postgres:password1234 > localhost:49156:*:postgres:password1234 I think this is explained by this statement in the libpq documentation: The host name localhost is also searched for when the connection is a Unix-domain socket connection and the host parameter matches libpq's default socket directory path. pg_upgrade will use a Unix-domain socket (unless on Windows), but it intentionally puts it in a non-default place --- we can see unix_socket_directories='/Volumes/Free/Upgrade' in your example. That's meant to ensure that outside clients can't connect to the postmaster(s) during the upgrade, but it's not interacting too well with this behavior of libpq. I don't recall for sure, but I think you could have made this work by putting the socket path (/Volumes/Free/Upgrade) instead of "localhost" in the .pgpass file. regards, tom lane