ubuntu 安装Apache-Age时出现“pg:ctl could not start server”错误

dba5bblo  于 2023-04-20  发布在  Apache
关注(0)|答案(3)|浏览(261)

我正在重新安装Apache Age,当我按照Age github安装指南安装Apache Age时。在那个命令之前,一切都很好。

cd age/

安装

sudo make PG_CONFIG=/home/imran/age_installation/pg/postgresql-11.18/bin/pg_config install

安装检查

make PG_CONFIG=/home/imran/age_installation/pg/postgresql-11.18/bin/pg_config installcheck
cd postgresql-11.18/

初始化

bin/initdb demo

在intiliaztion命令之后,我得到了这个输出。
Success. You can now start the database server using: bin/pg_ctl -D demo -l logfile start
现在当我运行这个命令:

bin/pg_ctl -D demo -l logfile start

我得到了这个意外的输出:

waiting for server to start.... stopped waiting
pg_ctl: could not start server
Examine the log output.

当我期待这个输出时,服务器将启动。
日志文件如下所示:

023-04-14 20:24:19.807 PKT [23717] LOG:  could not bind IPv4 address "127.0.0.1": Address already in use
2023-04-14 20:24:19.807 PKT [23717] HINT:  Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
2023-04-14 20:24:19.807 PKT [23717] WARNING:  could not create listen socket for "localhost"
2023-04-14 20:24:19.807 PKT [23717] FATAL:  could not create any TCP/IP sockets
2023-04-14 20:24:19.807 PKT [23717] LOG:  database system is shut down
2023-04-14 20:25:11.149 PKT [23724] LOG:  could not bind IPv4 address "127.0.0.1": Address already in use
2023-04-14 20:25:11.149 PKT [23724] HINT:  Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
2023-04-14 20:25:11.150 PKT [23724] WARNING:  could not create listen socket for "localhost"
2023-04-14 20:25:11.150 PKT [23724] FATAL:  could not create any TCP/IP sockets
2023-04-14 20:25:11.150 PKT [23724] LOG:  database system is shut down
2023-04-14 20:25:58.465 PKT [23733] LOG:  could not bind IPv4 address "127.0.0.1": Address already in use
2023-04-14 20:25:58.465 PKT [23733] HINT:  Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
2023-04-14 20:25:58.465 PKT [23733] WARNING:  could not create listen socket for "localhost"
2023-04-14 20:25:58.465 PKT [23733] FATAL:  could not create any TCP/IP sockets
2023-04-14 20:25:58.465 PKT [23733] LOG:  database system is shut down
kr98yfug

kr98yfug1#

我可以看到这个问题是持久的,因为服务器无法启动,因为你试图绑定的端口已经在使用中。所以我建议你做以下事情:

  • 首先,尝试停止可能正在您的系统上运行的PostgreSQL服务器。要停止它,您可以使用pg_ctl命令,如下所示:

pg_ctl stop -D /path/to/postgresql/data
停止后,您可以尝试再次启动AGE服务器。

  • 我推荐的另一个解决方案是通过向命令提供指定的端口号来更改绑定端口号。例如:

pg_ctl -D demo -l logfile -o“-p 5433”start
这将做什么它将启动服务器上指定的5433端口比5432
我希望这些建议能解决你的问题。

eeq64g8w

eeq64g8w2#

此错误是因为端口5432被占用,若要释放该端口,请查找端口5432上运行的进程ID(PID),如下所示:

lsof -i tcp:5432

这将返回5432上运行的所有进程沿着PID。接下来,通过运行以下命令杀死进程:

sudo pkill -9 PID     //Replace the PID with the PID returned by above command.

再次运行服务器

bin/pg_ctl -D demo -l logfile start
qojgxg4l

qojgxg4l3#

当另一个进程已经在使用您尝试使用的端口(默认为5432)时,会发生此错误。最可能的原因是您之前已经启动了Postgres服务器并试图重新启动。您可以使用以下命令查找哪个进程正在使用该端口。

lsof -i :5432

然后,您可以使用kill PIDpkill PROCESS_NAMEkillall PROCESS_NAME命令直接杀死它们,但这可能会导致其他一些进程行为不当,因此最好正确关闭这些进程。
作为临时解决方案,您也可以尝试在不同的端口上运行服务器。您可以使用以下命令之一在不同的端口上运行postgres。

pg_ctl -o "-F -p 5450" start
postgres -p 5450

如果您想在不同的端口上永久运行服务器,您可以在postgresql.conf文件中更改端口号。

port = 5432

把它改成你想要的,然后重新开始。

相关问题