Зміна порту 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змінну середовища або передати параметр config у командному рядку. Це не працюватиме, якщо ви запускаєте його як службу Windows.


Я використовую "Swiss File Knife" для заміни текстових файлів у Windows.
a_horse_with_no_name

@a_horse_with_no_name Корисний інструмент, коли у вас немає fileutils / coreutils / тощо; дякую за пораду.
Крейг Рінгер

Тож я не можу використовувати командний рядок для зміни порта pgsql у Windows?
Нік Хун

@NickHung Так, як пояснено вище, ви можете використовувати текстовий процесор для зміни конфігураційного файлу або не запускати PostgreSQL як службу Windows, а замість цього запустити його pg_ctl.
Крейг Рінгер

7
  • перейдіть до даних .. \ PostgreSQL \ 9.0 \ data та відкрийте файл postgresql.conf у текстовому редакторі / блокноті
  • пошук параметра порту .eg: port = 5433
  • відредагуйте це у свій номер порту.
  • перейдіть до запуску type services.msc та перезапустіть postgresql сервіс.

ви можете перевірити, чи встановлений параметр чи ні за допомогою інструменту запиту. просто виконати show portзапит. він відобразить ваш поточний номер порту. Якщо ви використовуєте pgAdmin для підключення до db, переконайтеся, що ви змінили номер порту в налаштуваннях підключення.


0

Рішення, яке не вимагає жодної заміни тексту або подібних методів, - це налаштувати різні порти в окремому конфігураційному файлі, а потім додати в postgresql.confфайл директиву включення .

напр

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

(Звичайно, \path\to\datadir\потрібно замінити правильний шлях)

Перша echoкоманда створює новий файл із лише конфігурацією порту. Другий додає директиву включення до існуючого конфігураційного файла postgres. Оскільки налаштування "пізніших" заміняють "попередні" параметри у файлі, будь-яка конфігурація порту, виконана в, postgresql.confбуде перезаписана з налаштуваннями у власному конфігураційному файлі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.