Modifica della porta PostgreSQL utilizzando la riga di comando

La mia porta predefinita di PostgreSQL è 5432, voglio cambiare la porta predefinita utilizzando la riga di comando (in Windows 7).

Ho già visto questa soluzione: https://stackoverflow.com/questions/187438/want-to-change-pgsql-port

Ho provato a eseguire quanto segue comando, ma non è riuscito:

 postgres --p 5431  

Qualcuno potrebbe dirmi come cambiare porta nellusare la riga di comando?

Risposta

Dato che “sei su Windows e probabilmente stai avviando PostgreSQL come servizio Windows, tu” Dovrò modificare postgresql.conf (allinterno della directory dei dati) per impostare la nuova porta lì, quindi riavviare il servizio postgresql utilizzando il pannello di controllo dei servizi o (come amministratore) il net service.

Puoi utilizzare uno strumento di modifica del testo a livello di codice per modificare postgresql.conf se devi automatizzarlo. Su una macchina Linux / unix dovresti utilizzare uno strumento come sed o awk, ma su Windows immagino che utilizzerai VBS , powershell o uno strumento aggiuntivo come Perl.

Dovrai modificare le impostazioni di connessione in strumenti come PgAdmin-III per utilizzare la nuova porta.

Se stavi avviando PostgreSQL manualmente utilizzando pg_ctl potresti impostare la variabile di ambiente PGPORT o passare unopzione di configurazione nella riga di comando. Non funzionerà quando “lo” riavvii come servizio Windows.

Commenti

  • I ' utilizzando " Swiss File Knife " per eseguire la sostituzione nei file di testo su Windows.
  • @a_horse_with_no_name Strumento utile quando ' non dispone di fileutils / coreutils / ecc; grazie per il suggerimento.
  • Quindi posso ' Usare la riga di comando per cambiare la porta pgsql in Windows?
  • @NickHung Sì, puoi, come spiegato sopra – usa un elaboratore di testi per modificare il file di configurazione, oppure don ' t esegui PostgreSQL come servizio Windows e avvialo invece con pg_ctl.

Risposta

  • vai a .. \ PostgreSQL \ 9.0 \ data e apri il file postgresql.conf nelleditor di testo / blocco note
  • cerca il parametro della porta .eg: port = 5433
  • modificalo con il tuo numero di porta.
  • vai a eseguire il tipo services.msc e riavvia il servizio postgresql.

puoi controllare se il parametro è impostato o meno tramite Query Tool. basta eseguire la query show port. visualizzerà il numero di porta corrente. Se stai usando pgAdmin per connetterti a db assicurati di aver cambiato il numero di porta nelle impostazioni di connessione.

Rispondi

Una soluzione che non non richiede alcuna sostituzione di testo o tecniche simili è configurare la porta diversa in un file di configurazione separato, quindi aggiungere una direttiva include al file postgresql.conf.

ad esempio

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

(Ovviamente \path\to\datadir\ deve essere sostituito con il percorso corretto)

Il primo comando echo crea un nuovo file con solo la configurazione della porta. Il secondo aggiunge una direttiva include al file di configurazione postgres esistente. Poiché le impostazioni “successive” sostituiscono le impostazioni “precedenti” nel file, qualsiasi configurazione della porta eseguita in postgresql.conf verrà sovrascritta con quella nel file di configurazione personalizzato.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *