Running PostgreSQL server on Void Linux. After installing ran initdb
as OS user 'postgres':
[user@host]$ sudo -u postgres -i
$ initdb -D '/var/lib/postgresql/data'
Received output:
creating directory /var/lib/postgresql/data ... ok creating subdirectories ... ok selecting default max_connections ... 100 selecting default shared_buffers ... 128MB selecting dynamic shared memory implementation ... posix creating configuration files ... ok running bootstrap script ... ok performing post-bootstrap initialization ... locale: Cannot set LC_MESSAGES to default locale: No such file or directory ok syncing data to disk ... ok
WARNING: enabling "trust" authentication for local connections You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb.
Success. You can now start the database server using: pg_ctl -D /var/lib/postgresql/data -l logfile start
I've then proceeded to create the service, grant the ownership to 'postgres' and start it:
[user@host]$ ln -s /etc/sv/postgresql /var/service
[user@host]$ sudo chown postgres: /var/service/postgresql
[user@host]$ sudo sv start postgresql
[user@host]$ ls -l /var/service/postgresql
lrwxrwxrwx 1 postgres postgres 18 nov 2 17:05 /var/service/postgresql -> /etc/sv/postgresql
Running:
[user@host]$ sudo -u postgres psql ...
will give me the following error:
psql: FATAL: role "postgres" does not exist
I've tried granting ownership of /etc/sv/postgresql
to 'postgres', but no luck.
These were my sources:
https://wiki.voidlinux.eu/PostgreSQL
PostgreSQL error: Fatal: role “username” does not exist
I do not know what to do next.
EDIT: Stumbled upon psql: FATAL: role “postgres” does not exist. Cannot run psql -l
because I get the same error, no matter which user I run psql
as.
role "postgres" does not exist
: there is no database role named "postgres". Is it the only Postgres installation on the same machine? (So you are sure to connect to the right instance?) If so, the question is: which database role is set up by your installation. I don't know Void Linux or the XPBS package manager enough to say more. Might be better suited for superuser.SE or unix.SE.initdb
, and then connect with the OS user of the same name to be granted access by the "trust" authentication method. Obviously not "postgres" (which would be the sane default).session_replication_role = 'origin'
. Not much use of that, I feel.:%s/XPBS/XBPS/g