无法重启 postgres 集群,因为用户 ID 不存在,无法添加具有该 ID 的用户,因为它存在

cannot restart postgres cluster, because of non existant user id, cannot add user with that ID because it exist

我正在尝试重新启动我的 postgres 集群,但它应该属于不存在的用户 ID。当我尝试添加该用户时,它应该存在。 我可以从这里做什么?

root@localhost:~# pg_lsclusters

12  main    5432 down   /var/lib/postgresql/12/main /var/log/postgresql/postgresql-12 main.log

root@localhost:~# pg_ctlcluster 12主重启

Error: The cluster is owned by user id 109 which does not exist

root@localhost:~# sudo adduser -UID 109 postgres

adduser: The GID 109 is already in use.

用户应该在组 116 中,该组也不存在。

在重新添加适当的用户和用户组后并没有帮助我重新启动集群,我只是删除了集群并添加了一个新的。现在我又有了一个 运行 postgres cluser。

root@localhost:~# pg_lsclusters
Ver Cluster Port Status Owner    Data directory              Log file
12  main    5432 down   postgres /var/lib/postgresql/12/main /var/log
/postgresql/postgresql-12-main.log

root@localhost:~# sudo systemctl stop postgresql@12-main
root@localhost:~# sudo pg_dropcluster --stop 12 main

root@localhost:~# sudo pg_createcluster --start 12 main
Ver Cluster Port Status Owner    Data directory              Log file
12  main    5432 online postgres /var/lib/postgresql/12/main /var/log/postgresql/postgresql-12-main.log

109已经存在,但是用户109不存在,所以解决方法是创建一个ID 为 116 的新组 和该组中 ID 为 109 的 新用户

groupadd --gid 116 postgres
useradd --gid 116 --no-user-group --uid 109 --home-dir /var/lib/postgresql postgres

下次,不要删除您仍然需要的用户...