Mengubah port PostgreSQL menggunakan baris perintah

10

Port default PostgreSQL saya adalah 5432, saya ingin mengubah port default dengan menggunakan baris perintah (pada Windows 7).

Saya melihat solusi ini sebelumnya: /programming/187438/want-to-change-pgsql-port

Saya mencoba menjalankan perintah berikut, tetapi gagal:

postgres --p 5431

Bisakah seseorang memberi tahu saya cara mengubah port menggunakan baris perintah?

Nick Hung
sumber

Jawaban:

9

Karena Anda menggunakan Windows dan mungkin memulai PostgreSQL sebagai layanan Windows, Anda harus mengedit postgresql.conf(di dalam direktori data Anda) untuk mengatur port baru di sana, kemudian restart layanan postgresql menggunakan panel kontrol Layanan atau (sebagai Administrator ) net serviceperintah.

Anda dapat menggunakan alat pengeditan teks terprogram untuk mengubah postgresql.confjika Anda perlu mengotomatiskan ini. Pada Linux / kotak unix Anda akan menggunakan alat seperti sedatau awk, tetapi pada Windows saya membayangkan Anda akan menggunakan VBS, PowerShell, atau alat tambahan seperti Perl.

Anda harus mengubah pengaturan koneksi di alat-alat yang ingin PgAdmin-IIImenggunakan port baru.

Jika Anda memulai PostgreSQL secara manual menggunakan pg_ctlAnda bisa mengatur PGPORTvariabel lingkungan atau memberikan opsi konfigurasi pada baris perintah. Ini tidak akan berfungsi ketika Anda meluncurkannya sebagai layanan Windows.

Craig Ringer
sumber
Saya menggunakan "Swiss File Knife" untuk melakukan penggantian file teks pada Windows.
a_horse_with_no_name
@a_horse_with_no_name Alat yang berguna ketika Anda tidak memiliki fileutils / coreutils / etc; terima kasih atas tipnya.
Craig Ringer
Jadi saya tidak bisa menggunakan baris perintah untuk mengubah port pgsql di Windows?
Nick Hung
@NickHung Ya, Anda bisa, seperti dijelaskan di atas - menggunakan prosesor teks untuk mengubah file konfigurasi, atau jangan menjalankan PostgreSQL sebagai layanan Windows dan sebaliknya memulainya dengan pg_ctl.
Craig Ringer
7
  • buka .. \ PostgreSQL \ 9.0 \ data dan buka file postgresql.conf dalam editor teks / notepad
  • mencari parameter port .eg: port = 5433
  • edit ini ke nomor port Anda.
  • pergi untuk menjalankan ketik services.msc dan restart layanan postgresql.

Anda dapat memeriksa apakah parameter ditetapkan atau tidak melalui alat kueri. cukup jalankan show portquery. itu akan menampilkan nomor port Anda saat ini. Jika menggunakan pgAdmin untuk terhubung ke db pastikan Anda mengubah nomor port Anda dalam pengaturan koneksi.

pc shamseer
sumber
0

Solusi yang tidak memerlukan penggantian teks atau teknik serupa adalah dengan mengkonfigurasi port yang berbeda di file konfigurasi terpisah, lalu menambahkan arahan sertakan ke postgresql.conffile.

misalnya

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

(Tentu saja \path\to\datadir\perlu diganti dengan jalur yang benar)

echoPerintah pertama membuat file baru hanya dengan konfigurasi port. Yang kedua menambahkan arahan include ke file konfigurasi postgres yang ada. Karena pengaturan "nanti" menimpa pengaturan "sebelumnya" dalam file, konfigurasi port yang dilakukan postgresql.confakan ditimpa dengan yang ada di file konfigurasi kustom.

seekor kuda tanpa nama
sumber