GNU bug report logs -
#41786
[PATCH] doc: Explain how to use psql with peer authentication.
Previous Next
Reported by: Pierre Neidhardt <mail <at> ambrevar.xyz>
Date: Wed, 10 Jun 2020 09:32:02 UTC
Severity: normal
Tags: patch
Done: Pierre Neidhardt <mail <at> ambrevar.xyz>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Hi Pierre,
Pierre Neidhardt <mail <at> ambrevar.xyz> writes:
> * doc/guix.texi (Database Services): Add example of shell commands to use psql
> as system user. Also add troubleshooting tip when service fails to start
> because of incompatible cluster.
> ---
> doc/guix.texi | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/doc/guix.texi b/doc/guix.texi
> index 15e077a41c..1326be69e5 100644
> --- a/doc/guix.texi
> +++ b/doc/guix.texi
> @@ -16787,6 +16787,24 @@ The PostgreSQL daemon loads its runtime configuration from @var{config-file},
> creates a database cluster with @var{locale} as the default
> locale, stored in @var{data-directory}. It then listens on @var{port}.
>
> +If the services fails to start, it may be due to an incompatible
> +cluster already present in @var{data-directory}. Adjust it (or, if you
> +don't need the cluster anymore, delete @var{data-directory}), then
> +restart the service.
OK, deleting data-directory probably will work for every issue,
e.g. data corruption for files inside :-).
Every ‘guix system reconfigure’ I see a message about
“/var/lib/postgresql/ already exists, skipping creating” if I remember
correctly. Do you see this when you use a cluster?
I don't have a strong opinion for this, but the message is enough, isn't
it? Maybe we could say in the documentation to remove data directory in
any case when you don't need previous data?
> +Peer authentication is used by default and the @code{postgres} user
> +account has no shell, which prevents the direct execution of @code{psql}
> +commands as this user. To use @code{psql}, you can temporarily log in
> +as @code{postgres} using a shell, create a PostgreSQL superuser with the
> +same name as one of the system users and then create the associated
> +database.
> +
> +@example
> +sudo su postgres -s /bin/sh
> +createuser --interface
> +createdb $MY_USER_LOGIN # Replace appropriately.
> +@end example
I tried ‘sudo su postgres -s /bin/sh’, then:
--8<---------------cut here---------------start------------->8---
sh-5.0$ createuser --interface
sh: createuser: command not found
--8<---------------cut here---------------end--------------->8---
First of all we could use just ‘sudo’ to get a shell:
sudo -u postgres -s /bin/sh
‘createuser’ and ‘createdb’ are in ‘/gnu/store/…-postgresql-10.13/bin’,
which is missing in my ‘postgres’ user's profile.
To fix this we could make ‘postgres’ available by default as in
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=db65d7447c3adc46e2b24abfc07ae10c6c537df4
WDYT?
Regards,
Oleg.
[signature.asc (application/pgp-signature, inline)]
This bug report was last modified 4 years and 293 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.