PostgreSQL 10 无法在 Ubuntu 18.04 下启动

Jer*_* Ji 6 postgresql ubuntu-18.04

在我新的 Ubuntu 18.04 中——

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04 LTS
Release:    18.04
Codename:   bionic
Run Code Online (Sandbox Code Playgroud)

安装 PostgreSQL 10 --

$ apt list --installed | grep -i postgres
postgresql-client-10/bionic,now 10.3-1 amd64 [installed]
postgresql-client-common/bionic,bionic,now 190 all [installed,automatic]
postgresql-common/bionic,bionic,now 190 all [installed,automatic]
postgresql-server-dev-10/bionic,now 10.3-1 amd64 [installed]
postgresql-server-dev-all/bionic,bionic,now 190 all [installed]
Run Code Online (Sandbox Code Playgroud)

双方servicesystemctl立即用没有消息回来,但没有启动任何Postgres的过程-

$ sudo service postgresql restart
$ sudo systemctl restart postgresql
Run Code Online (Sandbox Code Playgroud)

我完全处于黑暗中,因为既没有 conf 也没有日志——

$ ll /etc/postgresql
total 8
drwxr-xr-x  2 root root 4096 Feb  8 12:26 ./
drwxr-xr-x 95 root root 4096 May  6 04:11 ../

$ ll /var/log/postgresql/
total 8
drwxrwxr-t  2 root postgres 4096 Feb  8 12:26 ./
drwxrwxr-x 10 root syslog   4096 May  6 04:10 ../
Run Code Online (Sandbox Code Playgroud)

那里发生了什么?任何指针将不胜感激。

编辑:更糟糕的是,PostgreSQL 10 是 Ubuntu 18.04 中唯一列出的软件包,没有明显的“apt”方式来安装旧版本的 PostgreSQL

小智 5

只需使用

service postgresql@10-main start
Run Code Online (Sandbox Code Playgroud)

它有效。不确切知道为什么这种情况只发生在 18.04 中(我验证了 17.10 并且它没有发生在那里),但“umbrella”似乎无法枚举已安装的实例。

哈特哈,


Dan*_*ité 4

从结果来看,apt list --installed您实际上没有安装 PostgreSQL 10 服务器。

包的名称正是postgresql-10: https: //packages.ubuntu.com/bionic/database/postgresql-10。您应该安装该软件包。

缺乏错误并且服务确实存在的systemctl事实令人困惑:这是因为它是一个“伞”服务,启动每个安装和配置的 postgresql 实例。就您而言,目前此类实例为零,但就服务而言这很好。在最常见的情况下,您可能会同时运行多个不同版本的 PostgreSQL(来自不同的包),以及同一版本的多个实例(来自同一个包)。postgresqlpostgresqlpostgresqlpostgresql-<version>

我建议使用pg_lsclusters而不是检查您的 PostgreSQL 实例systemctl。另请参见pg_ctlcluster控制它们。