Inicie el servidor PostgreSQL en Windows

Bilal Shahid 15 febrero 2024
  1. Comandos básicos de inicialización PG_CTL en Windows
  2. Utilice SERVICES.MSC para INICIAR/DETENER una sesión de PostgreSQL en Windows
Inicie el servidor PostgreSQL en Windows

Hoy aprenderemos cómo iniciar un servidor PostgreSQL en Windows. En el artículo anterior sobre la descarga e instalación de PostgreSQL en Windows, ya aprendimos cómo iniciar una sesión, crear un USUARIO, emitir consultas y trabajar con diferentes objetos de la base de datos.

Nuestro tema ahora se centra en intentar ejecutar una sesión de servidor PostgreSQL a la que se pueden conectar otros usuarios en un sistema local.

Comandos básicos de inicialización PG_CTL en Windows

PG_CTL es una utilidad utilizada para iniciar y controlar un servidor PostgreSQL. PG_CTL es una configuración manual para inicializar una sesión de PostgreSQL, ya que proporciona una salida controlada, encapsula diferentes tareas y puede usarse para varias operaciones relacionadas con nuestra base de datos.

Para iniciar un servidor en Windows, vaya a su símbolo del sistema dentro de la instalación de PostgreSQL para la carpeta BIN.

pg_ctl start -D "[\data folder directory]";

Esto iniciará su servidor PostgreSQL. Para hacer esto en un puerto diferente en su computadora en el que desea que otros usuarios escuchen, use una consulta de la siguiente manera.

pg_ctl -o "-F -p [post_number]" start

Introduzca su NÚMERO DE PUERTO en el número_puerto definido sin los corchetes. Esto ayudará a iniciar su servidor y permitirá que otros usuarios se conecten a él en diferentes sistemas.

Sin embargo, si su servidor PostgreSQL se detuvo por algún motivo o por un ligero mal funcionamiento, es mejor que use cualquiera de los siguientes comandos para que funcione.

pg_ctl restart -D "[\data folder];
pg_ctl start company; --may or may not work / may produce errors
...

Muchas veces, no habrá necesidad de hacer nada de esto. Iniciar PGADMIN, por ejemplo, tiende a crear una sesión de PostgreSQL en un puerto predefinido en su PC, lo que permite que otros usuarios la descubran fácilmente.

Es posible que no haya necesidad de escribir ninguno de los comandos dados anteriormente para que su servidor PostgreSQL arranque.

Especificar rutas al emitir PG_CTL START/RESTART en Windows

A veces, llamar a un simple PG_CTL START/RESTART no es el camino a seguir. Es posible que deba especificar la ruta de la carpeta DATA dentro de su instalación de PostgreSQL y luego emitir los comandos de arranque.

Llamando a las consultas dadas anteriormente, obtendrá una SALIDA.

Producción :

pg_ctl: another server might be running; trying to start server anyway
waiting for server to start....2022-04-28 19:28:38.766 PKT [3228] LOG:  redirecting log output to logging collector process
2022-04-28 19:28:38.766 PKT [3228] HINT:  Future log output will appear in directory "log".
 stopped waiting
pg_ctl: could not start server
Examine the log output.

El resultado anterior ocurre cuando un servidor PostgreSQL ya se está ejecutando. Debido a que ya teníamos PGADMIN iniciado y ejecutándose en segundo plano, llamar a la consulta anterior no podría inicializar un servidor en el puerto que ya se está utilizando.

Sin embargo, hacer algo a continuación ejecutaría servidores separados en la misma PC.

pg_ctl -o "-F -p 5656" start -D "C:\Program Files\PostgreSQL\14\data"

Producción :

waiting for server to start....2022-04-28 19:34:04.588 PKT [11784] LOG:  redirecting log output to logging collector process
2022-04-28 19:34:04.588 PKT [11784] HINT:  Future log output will appear in directory "log".
 done
server started

Del mismo modo, también podría emitir los mismos comandos para REINICIAR.

pg_ctl restart -D "C:\Program Files\PostgreSQL\14\data"

or

pg_ctl -o "-F -p 5656" restart -D "C:\Program Files\PostgreSQL\14\data"

Producción :

waiting for server to shut down.... done
server stopped
waiting for server to start....2022-04-28 19:35:46.007 PKT [884] LOG:  redirecting log output to logging collector process
2022-04-28 19:35:46.007 PKT [884] HINT:  Future log output will appear in directory "log".
 done
server started

Puede ver en el resultado cómo el servidor primero se apaga porque ya se está ejecutando, luego se reinicia y registra cualquier cambio durante su sesión.

Utilice SERVICES.MSC para INICIAR/DETENER una sesión de PostgreSQL en Windows

Ya sabemos que un servidor PostgreSQL se instancia en su PC cuando lo inicia, ya sea desde PSQL o PGADMIN. Podemos hacer algunas cosas en SERVICES.MSC Para los servicios STOPPED o PAUSED, el Administrador de servicios de Windows.

  1. Presione Windows+R y escriba SERVICES.MSC.

  2. Una vez que se haya abierto el Administrador de servicios de Windows, busque el servicio del servidor PostgreSQL en la lista. Puede denominarse de la siguiente manera: postgresql-x64-14 - PostgreSQL Server 14.

    Administrador de servicios de Windows

  3. Haga clic con el botón derecho en este para INICIAR, DETENER, PAUSAR, REANUDAR o REINICIAR su servidor. Incluso puedes cambiar el tiempo de inicio a AUTOMÁTICO para que se inicie solo la próxima vez.

El Gestor de Servicios también suele decirnos la causa del fallo de un servicio concreto. Para ver la ruta del ejecutable, puede abrir la pestaña General y verla de la siguiente manera.

Pestaña General

Inicie el servidor PostgreSQL desde el COMMAND PROMPT usando NET START

Podemos usar el comando NET START para iniciar un servicio desde el símbolo del sistema. La sintaxis es la siguiente.

NET START [service_name]

Es posible que deba encontrar el SERVICE_NAME para su sesión de PostgreSQL. También se menciona en la pestaña General.

nombre de servicio general

Ahora puede emitir un comando de la siguiente manera.

net start postgresql-x64-14;

Esto iniciará nuestro servidor y mostrará el resultado de la siguiente manera.

Producción :

The postgresql-x64-14 - PostgreSQL Server 14 service is starting.
The postgresql-x64-14 - PostgreSQL Server 14 service was started successfully.

Sin embargo, recuerde que COMMAND PROMPT debe iniciarse como ADMINISTRADOR y no como usuario normal.

Haga clic derecho en el archivo ejecutable CMD.EXE y haga clic en Ejecutar como administrador. De lo contrario, obtendrá un error de la siguiente manera.

Producción :

System error 5 has occurred.

Access is denied.

Entonces, hoy aprendimos cómo iniciar un servidor PostgreSQL en Windows de diferentes maneras. Esperamos que lea detenidamente este artículo y pueda utilizarlo según sus necesidades.

Bilal Shahid avatar Bilal Shahid avatar

Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!

GitHub