使用命令行更改PostgreSQL端口


Answers:


9

由于您使用的是Windows,并且可能正在将PostgreSQL作为Windows服务启动,因此您需要postgresql.conf在数据目录中进行编辑(在数据目录中)以在其中设置新端口,然后使用“服务”控制面板或(以管理员身份)重新启动postgresql服务。 )net service命令。

postgresql.conf如果需要自动执行此操作,可以使用程序化文本编辑工具进行更改。在Linux / unix机器上,您将使用sed或这类工具awk,但是在Windows上,我想您将使用VBS,powershell或Perl等附加工具。

您需要在工具中更改连接设置,例如PgAdmin-III使用新端口。

如果使用手动启动PostgreSQL pg_ctl,则可以设置PGPORT环境变量或在命令行上传递config选项。当您将其作为Windows服务启动时,此功能将无效。


我正在使用“瑞士文件刀”在Windows上的文本文件中进行替换。
a_horse_with_no_name

@a_horse_with_no_name没有fileutils / coreutils / etc时有用的工具;谢谢你的提示。
Craig Ringer

所以我不能在Windows中使用命令行更改pgsql端口吗?
尼克·洪

@NickHung是的,如上所述,您可以使用文本处理器来更改配置文件,或者不将PostgreSQL作为Windows服务运行,而是使用pg_ctl
Craig Ringer

7
  • 转到.. \ PostgreSQL \ 9.0 \ data并在文本编辑器/记事本中打开文件postgresql.conf
  • 搜索端口参数。例如:port = 5433
  • 将其编辑为您的端口号。
  • 转到运行services.msc类型并重新启动postgresql服务。

您可以通过查询工具检查是否已设置参数。只是执行show port查询。它会显示您当前的端口号。如果使用pgAdmin连接数据库,请确保您在连接设置中更改了端口号。


0

不需要任何文本替换或类似技术的解决方案是在单独的配置文件中配置其他端口,然后将include指令附加到postgresql.conf文件中。

例如

echo port = 5431 > \path\to\datadir\custom.conf
echo include custom.conf>> \path\to\datadir\postgresql.conf

(当然\path\to\datadir\需要替换为正确的路径)

第一条echo命令仅使用端口配置创建一个新文件。第二个将include指令附加到现有的postgres配置文件中。由于“较晚”设置会覆盖文件中的“较早”设置,因此完成的任何端口配置都postgresql.conf将被自定义配置文件中的端口设置覆盖。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.