Instalá PostgreSQL en Linux, macOS, Windows y Docker: Guía Paso a Paso

DUGLAS MORENODUGLAS MORENO 👁 1

Instalá PostgreSQL en Linux, macOS, Windows y Docker: Guía Paso a Paso

Introducción

PostgreSQL es un sistema de gestión de bases de datos relacionales de código abierto, conocido por su fiabilidad, rendimiento y cumplimiento de estándares SQL. Muchas personas, desarrolladores y empresas lo eligen para aplicaciones pequeñas y grandes, tanto en entornos de desarrollo como de producción.

En esta guía práctica, vas a aprender a instalar PostgreSQL en cuatro plataformas principales: Linux (distribuciones basadas en apt y yum), macOS (Homebrew), Windows (instalador gráfico) y un contenedor Docker. Cada sección incluye comandos exactos con la salida esperada, consejos de verificación y algunas recomendaciones de seguridad y mejores prácticas.

Querés una base de datos lista para usar en poco tiempo, y podés hacerlo sin complicaciones. A continuación, los pasos detallados.

Requisitos previos

Antes de empezar, tenés que asegurarte de que el sistema cumpla con requisitos básicos:

  • Permisos de administrador (sudo en Linux, administrador en Windows) – vas a necesitar elevar privilegios para instalar paquetes o abrir puertos.
  • Al menos 1 GB de RAM – suficiente para un servidor de prueba.
  • Espacio libre en disco – PostgreSQL generalmente necesita unos pocos gigabytes, pero podés instalar una versión mínima sin problemas.
  • Red – el instalador tratará de abrir el puerto 5432; si tenés un firewall, querés permitirlo.
  • Cliente psql – la mayoría de los sistemas ya lo incluyen; si no, lo instalarás junto con el servidor.

Si cumplís con estos requisitos, estás listo para empezar en cualquiera de los sistemas operativos.

Instalación en Linux

Linux ofrece dos métodos principales: el gestor de paquetes apt (Ubuntu, Debian, Mint) y yum/dnf (CentOS, RHEL, Fedora). Ambos son simples y dejan el servidor listo para usar.

Ubuntu / Debian (apt)

sudo apt update
sudo apt install -y postgresql postgresql-contrib

Una vez finalizada la instalación, el servicio se inicia automáticamente. Podés verificarlo así:

systemctl status postgresql

Salida típica:

● postgresql.service - PostgreSQL DBMS
   Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2024-05-07 12:34:56 ART; 5s ago
  Process: 12345 postgresql -D /var/lib/postgresql/14/main (code=exited, status=0/SUCCESS)
   Main PID: 12457 (postgres)
      Tasks: 4 (limit: 1000)
     Memory: 24.0M
     CGroupExact: /system.slice/postgresql.service
             └─12457 /usr/lib/postgresql/14/bin/postgres -D /var/lib/postgresql/14/main

El usuario postgres ya existe. Podés acceder con:

sudo -u postgres psql

Verás el prompt de psql (postgres=#). Si querés salir, simplemente ejecutá \q.

CentOS / RHEL / Fedora (yum / dnf)

sudo yum install -y postgresql-server
sudo postgresql-setup --initdb
sudo systemctl enable postgresql
sudo systemctl start postgresql

Para Fedora 22+, usá dnf en vez de yum. La salida será similar a la de abajo (se ha truncado para brevedad):

Eliminando paquetes obsoletos:
 some-package.x86_64 0B
Instalando:
  postgresql-server-13.5-1.el8.x86_64                           1.3 MB
...
Ejecutando postgresql-setup... Inicializando la base de datos del cluster ... ¡LISTO!

Ahora podés verificar el estado igual que antes:

sudo systemctl status postgresql

Y acceder con:

sudo -u postgres psql

Instalación en macOS

macOS ofrece una de las formas más sencillas: Homebrew. Si ya tenés Homebrew instalado, podés instalar PostgreSQL en un solo paso.

brew update
brew install postgresql

Homebrew instala el servidor como un servicio de launchd. Para iniciarlo:

brew services start postgresql

Verifica que esté corriendo:

brew services list

Salida esperada:

Name                 Status
postgresql          started

El cliente psql se instala automáticamente en /usr/local/bin/psql. El usuario actual puede acceder a PostgreSQL usando:

psql postgres

Si obtenés un error de "conexión rechazada", es probable que el servidor no haya sido iniciado automáticamente. Podés ejecutar brew services restart postgresql para solucionarlo.

Alternativa: MacPorts

Si preferís MacPorts, el proceso es similar:

sudo port install postgresql94

El servidor se encuentra en /opt/local/var/db/postgresql94/defaultdb. Podés iniciarlo con pg_ctl -D /opt/local/var/db/postgresql94/defaultdb -l logfile start.

Instalación en Windows

Windows ofrece un instalador gráfico que guía a través del proceso. Los pasos son simples y la interfaz te permite configurar el puerto, la carpeta de datos y el superusuario sin editar archivos.

  1. Descargá el instalador desde https://www.enterprisedb.com/downloads/postgresql‑latest.
  2. Ejecutá el instalador .exe. Elegí "Instalar como servicio" (para que PostgreSQL arranque con Windows) o "Solo herramientas" si solo querés el cliente.
  3. En la pantalla de "Configuración del servidor", dejá el puerto predeterminado 5432, elegí una carpeta de datos (ej. C:\Program Files\PostgreSQL\14\data) y creá un superusuario (ej. postgres).
  4. Cuando termine la instalación, marcá "Ejecutar pgAdmin" si querés una interfaz gráfica, o abrí un Símbolo del sistema y ejecutá:
psql -U postgres -h localhost -p 5432

Si todo va bien, verás:

psql (14.5)
Escribe un comando o presiona \q para salir.
postgres=#

El servidor está listo y podés empezar a crear bases de datos.

Instalación vía Docker

Si preferís un entorno aislado y portable, Docker es la opción ideal. La imagen oficial de PostgreSQL incluye un servidor listo para usar con un servidor de pruebas básico.

Paso a paso

# Asegurarte de que Docker está corriendo
docker version

# Ejecutar un contenedor (mapeando el puerto 5432 local)
docker run --name my-postgres \
  -e POSTGRES_USER=postgres \
  -e POSTGRES_PASSWORD=mysecret \
  -e POSTGRES_DB=mydb \
  -p 5432:5432 \
  -d postgres:14

Se mostrará el ID del contenedor. Podés chequearlo con:

docker ps

Salida esperada (truncada):

CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                                       NAMES
abc1234567890   postgres:14    "docker-entrypoint.s…"   2 seconds ago    Up 1 second     0.0.0.0:5432->5432/tcp, :::5432->5432/tcp   my-postgres

Ahora podés conectarte con psql desde la misma máquina:

psql -U postgres -h localhost -p 5432 mydb

Si todo está bien, verás:

psql (14.5)
Base de datos: mydb
  =>

Si querés mapear un volumen para persistir datos, agregá:

-v "$(pwd)/pgdata:/var/lib/postgresql/data"

Al contenedor. Ejemplo:

docker run --name my-postgres \
  -e POSTGRES_USER=postgres \
  -e POSTGRES_PASSWORD=mysecret \
  -e POSTGRES_DB=mydb \
  -p 5432:5432 \
  -v "$(pwd)/pgdata:/var/lib/postgresql/data" \
  -d postgres:14

Buenas prácticas y errores comunes

1. Seguridad del servidor

  • Cambiar la contraseña del superusuario: Usá ALTER USER postgres PASSWORD 'tuContraseñaSegura'; después de la primera conexión.
  • Configurar pg_hba.conf: Asegurate de que solo las conexiones locales o de confianza tengan acceso, por ejemplo, local all all peer para la autenticación basada en usuarios del sistema.
  • Cerrar el puerto 5432 si no está en uso: Si estás en una red corporativa, asegura el firewall: iptables -A INPUT -p tcp --dport 5432 -j ACCEPT (o usa la interfaz gráfica).

2. Ajustes de rendimiento

  • Compartir memoria: Para servidores con poca RAM, usá shared_buffers = 128MB en postgresql.conf.
  • Work_mem: Ajustalo según tus consultas; un valor típico para SELECT es 4MB.
  • max_connections: Si esperás muchas conexiones simultáneas, aumentá este valor gradualmente.

3. Respaldos

  • Respaldos completos: Usá pg_dumpall > respaldo_completo.sql periódicamente.
  • Respaldos diferenciales: pg_dump -F d -f diff/ mi_base para un respaldo de solo cambios.
  • Almacenamiento: Guardá los respaldos en un volumen separado o en un servicio en la nube; nunca en el mismo servidor.

4. Errores frecuentes

Error Causa Solución
psql: comando no encontrado El cliente no está en el PATH. Instalá postgresql-client (Linux) o verifica la ruta de Homebrew (/usr/local/bin).
FATAL: contraseña incorrecta para usuario "postgres" La contraseña fue cambiada o nunca se estableció. Usá ALTER USER postgres PASSWORD '...'; o reinstalá el servidor.
FATAL: no hay conexión con el servidor El servidor no está corriendo o el puerto está bloqueado. Chequear systemctl status postgresql o docker ps. Asegurar que el puerto no esté en uso.
El servicio no se pudo iniciar El puerto 5432 está ocupado por otra aplicación. Cambiá el puerto en postgresql.conf o detén el servicio conflicting.

5. Mantenimiento

  • Actualizar el servidor: Usá el gestor de paquetes (apt upgrade postgresql, yum update postgresql-server) o actualizá la imagen de Docker (docker pull postgres:14).
  • Review de logs: Los registros están en /var/log/postgresql/ (Linux), /usr/local/var/log/postgresql.log (macOS) o %programdata%\postgresql\log (Windows).

Conclusión

Instalar PostgreSQL en cualquier sistema operativo es un proceso directo si seguís los pasos correctos. Ya seas un desarrollador que necesita un rápido entorno local, un administrador de sistemas configurando un servidor de producción, o alguien que prefiere un contenedor Docker portátil, tenés ahora un conjunto completo de instrucciones con los comandos exactos y las salidas esperadas que podés copiar y pegar.

Recordá que la seguridad es un proceso continuo: cambiá las contraseñas, configurá pg_hba.conf y hacé respaldos regulares. Una vez que el servidor esté corriendo, podés profundizar en ajustes de rendimiento, replicación o herramientas como pgAdmin.

Con PostgreSQL instalado, estás listo para diseñar esquemas robustos, escribir consultas eficientes y construir aplicaciones escalables. ¡ Feliz programación !

Próximos pasos

  • Explorá pgAdmin: Instalá la interfaz gráfica para administrar bases de datos sin usar la terminal.
  • Ajusta postgresql.conf: Aprendé a cambiar shared_buffers, work_mem y max_connections según tus necesidades.
  • Configurá la replicación: Usá pg_basebackup y Standby para crear un servidor de respaldo.
  • Leé la documentación oficial: https://www.postgresql.org/docs/14/

Ahora tenés todo lo necesario para integrar PostgreSQL en cualquier entorno. ¡A empezar a crear bases de datos!


Referencias

  1. Documentación de PostgreSQL – https://www.postgresql.org/docs/14/
  2. Documentación de Homebrew – https://brew.sh/
  3. Documentación de Docker – https://docs.docker.com/get-started/

Comentarios (0)

Sé el primero en comentar.

Dejá tu comentario