Изменение порта PostgreSQL с помощью командной строки

10

Мой порт PostgreSQL по умолчанию - 5432, я хочу изменить порт по умолчанию с помощью командной строки (в Windows 7).

Я видел это решение раньше: /programming/187438/want-to-change-pgsql-port

Я попытался выполнить следующую команду, но она не удалась:

postgres --p 5431

Может кто-нибудь сказать мне, как изменить порт в командной строке?

Ник Хунг
источник

Ответы:

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переменную окружения или передать параметр конфигурации в командной строке. Это не будет работать, когда вы запускаете его как службу Windows.

Крейг Рингер
источник
Я использую «Swiss File Knife» для замены текстовых файлов в Windows.
a_horse_with_no_name
@a_horse_with_no_name Полезный инструмент, когда у вас нет fileutils / coreutils / etc; Спасибо за совет.
Крейг Рингер
Так что я не могу использовать командную строку для изменения порта pgsql в Windows?
Ник Хунг
@NickHung Да, как вы объяснили выше, вы можете использовать текстовый процессор для изменения файла конфигурации или не запускать PostgreSQL в качестве службы Windows и вместо этого запускать его с pg_ctl.
Крейг Рингер
7
  • перейдите в .. \ PostgreSQL \ 9.0 \ data и откройте файл postgresql.conf в текстовом редакторе / блокноте
  • поиск параметра порта .eg: port = 5433
  • отредактируйте это к своему номеру порта.
  • перейдите к запуску типа services.msc и перезапустите сервис postgresql.

Вы можете проверить, установлен ли параметр или нет, с помощью инструмента запросов. просто выполните show portзапрос. он покажет ваш текущий номер порта. Если вы используете pgAdmin для подключения к базе данных, убедитесь, что вы изменили номер порта в настройках соединения.

Shamseer PC
источник
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будет перезаписана с настройкой в ​​файле пользовательской конфигурации.

a_horse_with_no_name
источник