无法启动 PostgreSQL

Not able to start PostgreSQL

有一台CentOS7Linux机器运行(不是我管理的;权限有限to/in)。

请求在其中设置 PostgreSQL。

刚刚从 CentOS 存储库安装了 PostgreSQL:

sudo yum install postgresql-server postgresql-contrib

一切顺利。

然后初始化数据库:

sudo yum install postgresql-server postgresql-contrib

一切顺利。

但随后开始:

sudo systemctl start postgresql

失败:

Job for postgresql.service failed because the control process exited with error code. See "systemctl status postgresql.service" and "journalctl -xe" for details.

我无法访问 systemd-journal,所以 "journalctl -xe" 没有任何意义,但是:

systemctl status postgresql.service

returns:

● postgresql.service - PostgreSQL database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Fri 2020-04-24 16:41:04 EEST; 33s ago
  Process: 30690 ExecStart=/usr/bin/pg_ctl start -D ${PGDATA} -s -o -p ${PGPORT} -w -t 300 (code=exited, status=1/FAILURE)
  Process: 30684 ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
postgres --version
postgres (PostgreSQL) 9.2.24

知道这里可能有什么问题吗?要继续吗?

您的机器上必须同时安装 PostgreSQL 9.2 和 9.3。卸载它们并从 PostgreSQL 站点安装版本 12。删除数据目录并使用 v12 安装创建一个新目录。然后重试。

正如 echo $PGDATA 所示,您也有 PG9.3。这意味着 9.2 服务将不会启动,因为端口 5432 可能已经被 postgres 9.3 占用 执行以下操作

ps- ef | grep postgres 

并获取 postgres 进程 ID 并终止所有 postgres 进程。

使用

删除 9.3 数据目录
rm -rf /var/lib/pgsql/9.3

使用下面的命令

转到/usr/pgsql-9.2/bin和运行 initdb
./postgresql92-setup initdb

之后使用

启动postgresql-9.2服务
systemctl start postgresql-9.2.service