我发现它有一个postgresql.conf文件位于~/Library/Application\ Support/Postgres/var/postgresql.conf,但即使我将port =的值更改为其他内容,在服务器重新启动后它仍会监听5432端口。
似乎Postgres.app没有使用这个postgresql.conf文件。它在哪里存储服务器配置文件呢?
~/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)
SHOW config_file
显示正在使用这个配置文件,但端口号会被命令行设置覆盖。 - mdrozdzielport = xxx
以#
开头,即默认情况下被注释掉了。在我删除了#
并重新启动Postgress.app之后,端口发生了变化。 - Alexander Kachkaev我可以从 ps aux |grep post
看到输出结果:
/Applications/Postgres.app/Contents/MacOS/bin/postgres -D /Users/chenc26/Library/Application Support/Postgres/var -p5432
因此我认为这个应用程序中一定有一些配置来指定忽略配置文件中的值的CLI参数。
我正在运行 Mavericks 10.9.3,通过 nano ~/Library/Application\ Support/Postgres/var-9.3/postgresql.conf
打开 Postgres 应用程序 v9.3 配置文件。取消注释 port = 5432
行,然后将其更改为例如 5433 对我起作用。(如配置文件所述)需要重新启动应用程序,此后应用程序正确显示它正在使用端口 5433 运行。
vim ~/Library/Application\ Support/Postgres/var-9.5/postgresql.conf
- Markus Hedlund/Library/PostgreSQL/9.1/data/
检查是否有 postgresql.conf 文件。如果找到了一个,请考虑制作一份副本来替换您编辑过的文件(这样您编辑过的那个文件就又变成了未编辑过的版本)。
在2022年,我不能只编辑server.conf文件。看起来,我必须通过GUI来更改命令行参数所引用的端口:
... bin/postgres -D /Users/MyUser/Library/Application Support/Postgres/var-11 -p 6543
在顶部栏中打开Postgres象标。
选择“打开Postgres”
停止服务器。
点击服务器设置。
然后,在简单输入框中更改端口。
完成后,启动服务器并查找端口是否已更改。
postgresql.conf
,请在运行 Postgres.app 时运行SHOW config_file;
。如果您正在编辑正确的文件:在启动 Postgres.app 时是否会被改回去?如果是这样,该应用程序可能希望您通过首选项更改端口。如果它没有被改回去但被忽略了,可能该应用程序正在覆盖 postgres 命令行上的端口;再次检查 Postgres.app 的首选项。 - Craig Ringer