我的PostgreSQL默认端口是5432,我想使用命令行更改默认端口(在Windows 7中)。
我之前看到过这个解决方案:https : //stackoverflow.com/questions/187438/want-to-change-pgsql-port
我尝试运行以下命令,但失败:
postgres --p 5431
有人可以告诉我如何使用命令行更改端口吗?
我的PostgreSQL默认端口是5432,我想使用命令行更改默认端口(在Windows 7中)。
我之前看到过这个解决方案:https : //stackoverflow.com/questions/187438/want-to-change-pgsql-port
我尝试运行以下命令,但失败:
postgres --p 5431
有人可以告诉我如何使用命令行更改端口吗?
Answers:
由于您使用的是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服务启动时,此功能将无效。
pg_ctl
。
您可以通过查询工具检查是否已设置参数。只是执行show port
查询。它会显示您当前的端口号。如果使用pgAdmin连接数据库,请确保您在连接设置中更改了端口号。
不需要任何文本替换或类似技术的解决方案是在单独的配置文件中配置其他端口,然后将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
将被自定义配置文件中的端口设置覆盖。