Postgres.app配置(端口和其他选项)

7
我刚在我的Mac上安装了Postgres.app,但我需要对服务器进行一些特定的配置。例如,我想使用不同的端口,而不是5432。
我发现它有一个postgresql.conf文件位于~/Library/Application\ Support/Postgres/var/postgresql.conf,但即使我将port =的值更改为其他内容,在服务器重新启动后它仍会监听5432端口。
似乎Postgres.app没有使用这个postgresql.conf文件。它在哪里存储服务器配置文件呢?

3
为确保您编辑正确的 postgresql.conf,请在运行 Postgres.app 时运行 SHOW config_file;。如果您正在编辑正确的文件:在启动 Postgres.app 时是否会被改回去?如果是这样,该应用程序可能希望您通过首选项更改端口。如果它没有被改回去但被忽略了,可能该应用程序正在覆盖 postgres 命令行上的端口;再次检查 Postgres.app 的首选项。 - Craig Ringer
另请参阅:https://github.com/mattt/PostgresApp/issues/56 - Craig Ringer
5个回答

11

~/Library/Application\ Support/Postgres/var/目录下的postgresql.conf文件Postgres.app使用。唯一的问题是:如果你在该文件中更改端口,这个更改不会反映在菜单栏中。因此,在那里的大象仍然会显示“运行于5432端口”,尽管Postgres可能正在运行于例如5433端口。(Mac OS X 10.8.2、Server.app 2.2、Postgres.app 9.2.2.0)


1
更改postgresql.conf对此配置没有影响。 - Thomas Farvour
3
这个答案是不正确的。尽管SHOW config_file显示正在使用这个配置文件,但端口号会被命令行设置覆盖。 - mdrozdziel
@mdrozdziel,我在端口更改方面也遇到了一些困难,但是后来注意到行port = xxx开头,即默认情况下被注释掉了。在我删除了并重新启动Postgress.app之后,端口发生了变化。 - Alexander Kachkaev

2

我可以从 ps aux |grep post 看到输出结果: /Applications/Postgres.app/Contents/MacOS/bin/postgres -D /Users/chenc26/Library/Application Support/Postgres/var -p5432 因此我认为这个应用程序中一定有一些配置来指定忽略配置文件中的值的CLI参数。


2

我正在运行 Mavericks 10.9.3,通过 nano ~/Library/Application\ Support/Postgres/var-9.3/postgresql.conf 打开 Postgres 应用程序 v9.3 配置文件。取消注释 port = 5432 行,然后将其更改为例如 5433 对我起作用。(如配置文件所述)需要重新启动应用程序,此后应用程序正确显示它正在使用端口 5433 运行。


我可以确认这在搭配 PG 9.5 的 El Capitan 上可以运行。vim ~/Library/Application\ Support/Postgres/var-9.5/postgresql.conf - Markus Hedlund

0
如果正确更改了postgresql.conf的内容,然后重新启动PostgreSQL服务器并没有改变它所监听的端口,那么你几乎可以肯定正在编辑错误的postgresql.conf。
在其他平台上,PostgreSQL会将其默认版本的postgresql.conf的一个副本放入数据目录中。因此,您可能会在计算机上的至少两个位置找到所有配置文件的副本,通常一个在分发或源代码下载或解压缩的目录中,另一个在数据目录中。如果您使用的是9.1版的Mac,则数据目录可能为XXX。
/Library/PostgreSQL/9.1/data/

检查是否有 postgresql.conf 文件。如果找到了一个,请考虑制作一份副本来替换您编辑过的文件(这样您编辑过的那个文件就又变成了未编辑过的版本)。


不,没有这样的目录(/Library/Postgre*)。而且“find / -name postgres.conf”只能找到一个我尝试编辑的文件。看起来这是Postgres.app的错误(https://github.com/mattt/PostgresApp/issues/56):( 所以我安装了官方版本的postgres, 它很好用。 - Igor Artamonov
Mike,你可能在谈论StackBuilder版本吧?我认为我们都在引用标准的Postgresql.app。 - Harlin
1
@Harlin:10年前,但是不,我当时在谈论Mac OS上的标准Postgresql应用程序。那时候,我对Stackbuilder一无所知。 - Mike Sherrill 'Cat Recall'

0

在2022年,我不能只编辑server.conf文件。看起来,我必须通过GUI来更改命令行参数所引用的端口:

... bin/postgres -D /Users/MyUser/Library/Application Support/Postgres/var-11 -p 6543

我成功更改的方法是:
  1. 在顶部栏中打开Postgres象标。

  2. 选择“打开Postgres”

  3. 停止服务器。

  4. 点击服务器设置。

  5. 然后,在简单输入框中更改端口。

  6. 完成后,启动服务器并查找端口是否已更改。

这适用于Postgres.app(我的桌面上的11版本)。

你的指示对我很有用。但是,像420这样的三位数字端口号对我不起作用。不过四位数字的端口号可以使用。 - lanadelrey
你能否将端口号更改为三位数,例如420? - lanadelrey
1024以下的端口是特殊权限(这适用于任何网络应用程序)。我建议将您的Postgres端口保持在1024以上,以便可以由postgres用户运行。如果必须这样做,有解决方法-> https://unix.stackexchange.com/questions/10735/allowing-a-regular-user-to-listen-to-a-port-below-1024 但请知道这是一个网络问题,而不是Mac上的Postgres问题。 - Harlin
1
我成功使用 Docker Compose 技术将其更改为 420 端口:https://dev59.com/UVoU5IYBdhLWcg3wI0hM。 - lanadelrey
1
我能够使用Docker Compose将其更改为420:https://stackoverflow.com/questions/37775702/changing-a-postgres-containers-server-port-in-docker-compose。 - undefined
很高兴听到你找到了解决方法。 - Harlin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接