Hello,

I have been trying to use the pg_upgrade command to update a PostgreSQL 11 environment to 13 on macOS 11.

I have followed the steps in the documentation, but the command always fails when trying to connect to the original database. This is the command that is sent:

/Library/PostgreSQL/13/bin/pg_upgrade -b /Library/PostgreSQL/11/bin -B /Library/PostgreSQL/13/bin -d /Volumes/Postgres_Data/PostgreSQL/11/data -D /Volumes/Postgres_Data/PostgreSQL/13/data -p 49156 -P 49155 -U postgres -j 24 -v

And this is what is logged:

        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 "/Library/PostgreSQL/11/bin/pg_ctl" -w -D "/Volumes/Postgres_Data/PostgreSQL/11/data" -o "" -m fast stop >> "pg_upgrade_server.log" 2>&1


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

The .pgpass file works without problems with the pg_dump and pg_restore commands, so I'm fairly certain its contents and privileges are set correctly.


The PostgreSQL documentation also mentions that you can update the pg_hba.conf file to use authentication method "peer". This has no effect either, however when I set it to "trust", the command goes through just fine.

So I have been able to do the upgrade, but I am still wondering why I got the error in the first place. Any idea why the .pgpass file isn't working with the pg_upgrade command?

Best regards,

Nick Renders


Reply via email to