📅  最后修改于: 2023-12-03 15:41:06.479000             🧑  作者: Mango
当你在 Mac 上尝试启动 PostgreSQL 服务器时,如果控制台输出类似以下的信息:
pg_ctl: could not start server
Examine the log output.
2021-01-01 12:00:00.000 CST [54321] FATAL: could not bind IPv4 socket: Address already in use
2021-01-01 12:00:00.000 CST [54321] HINT: Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
这说明端口 5432 已经被占用,通常这意味着你已经有一个 PostgreSQL 服务器在运行。
如果你只需要一个 PostgreSQL 服务器,那么你可以尝试找到运行中的服务器并停止它,以便你的应用程序能够使用相同的端口。
如果你需要同时运行多个服务器,那么你需要使用不同的端口。你可以通过修改 PostgreSQL 的配置文件 postgresql.conf
来更改默认端口。
在 postgresql.conf
文件中,你需要修改以下行:
#listen_addresses = 'localhost' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost', '*' = all
#port = 5432 # (change requires restart)
如果要同时运行多个 PostgreSQL 服务器,请将 port
参数更改为不同的端口号,例如:
#listen_addresses = 'localhost' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost', '*' = all
port = 5433 # (change requires restart)
然后,你可以通过以下命令启动新的 PostgreSQL 服务器:
$ pg_ctl -D /usr/local/var/postgres2 start
其中 -D
参数指定了新的数据库集群的数据目录,在这个例子中是 /usr/local/var/postgres2
。
现在,你可以使用新的端口号连接到这个服务器了。
在 Mac 上启动 PostgreSQL 服务器时,如果遇到端口占用问题,可以通过找到运行中的服务器并停止它来解决问题,或者使用不同的端口启动新的服务器。修改 postgresql.conf
文件并使用 -D
参数来指定不同的数据目录即可同时运行多个 PostgreSQL 服务器。