Cambiar el puerto PostgreSQL usando la línea de comando


10

Mi puerto predeterminado de PostgreSQL es 5432, quiero cambiar el puerto predeterminado mediante la línea de comandos (en Windows 7).

Vi esta solución antes: /programming/187438/want-to-change-pgsql-port

Intenté ejecutar el siguiente comando, pero falló:

postgres --p 5431

¿Alguien podría decirme cómo cambiar el puerto al usar la línea de comando?

Respuestas:


9

Dado que está en Windows y probablemente está iniciando PostgreSQL como un servicio de Windows, deberá editar postgresql.conf(dentro de su directorio de datos) para configurar el nuevo puerto allí, luego reiniciar el servicio postgresql usando el panel de control de Servicios o (como Administrador ) el net servicecomando.

Puede usar una herramienta de edición de texto programática para cambiar postgresql.confsi necesita automatizar esto. En un cuadro de Linux / unix usaría una herramienta como sedo awk, pero en Windows me imagino que usará VBS, powershell o una herramienta complementaria como Perl.

Deberá cambiar la configuración de conexión en herramientas como PgAdmin-IIIusar el nuevo puerto.

Si estaba iniciando PostgreSQL manualmente utilizando pg_ctl, podría establecer la PGPORTvariable de entorno o pasar una opción de configuración en la línea de comando. Esto no funcionará cuando lo inicie como un servicio de Windows.


Estoy usando "Swiss File Knife" para reemplazar archivos de texto en Windows.
a_horse_with_no_name

@a_horse_with_no_name Herramienta útil cuando no tiene fileutils / coreutils / etc; gracias por el consejo.
Craig Ringer

¿Entonces no puedo usar la línea de comando para cambiar el puerto pgsql en Windows?
Nick Hung

@NickHung Sí, puede, como se explicó anteriormente, usar un procesador de texto para cambiar el archivo de configuración, o no ejecutar PostgreSQL como un servicio de Windows y, en su lugar, iniciarlo pg_ctl.
Craig Ringer

7
  • vaya a .. \ PostgreSQL \ 9.0 \ data y abra el archivo postgresql.conf en el editor de texto / bloc de notas
  • buscar el parámetro de puerto .eg: port = 5433
  • edite esto a su número de puerto.
  • vaya a ejecutar escriba services.msc y reinicie el servicio postgresql.

puede verificar si el parámetro está configurado o no a través de la herramienta de consulta. solo ejecuta la show portconsulta. mostrará su número de puerto actual. Si está utilizando pgAdmin para conectarse a db, asegúrese de haber cambiado su número de puerto en la configuración de conexión.


0

Una solución que no requiere ningún reemplazo de texto o técnicas similares es configurar el puerto diferente en un archivo de configuración separado, luego agregar una directiva de inclusión al postgresql.confarchivo.

p.ej

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

(Por supuesto \path\to\datadir\, debe reemplazarse con la ruta correcta)

El primer echocomando crea un nuevo archivo con solo la configuración del puerto. El segundo agrega una directiva de inclusión al archivo de configuración de postgres existente. Como la configuración "posterior" anula la configuración "anterior" en el archivo, cualquier configuración de puerto realizada postgresql.confse sobrescribirá con la del archivo de configuración personalizado.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.