Ir al contenido
Brayan Diaz C
Volver

Cómo instalar y configurar PostgreSQL en Ubuntu y WSL

Cerramos la etapa de lenguajes con la pieza que casi todos ellos terminan necesitando: la base de datos. En este artículo vas a aprender exactamente cómo instalar PostgreSQL en Ubuntu o WSL desde su repositorio oficial, con el servicio andando y tu usuario listo para trabajar.

PostgreSQL es la base de datos que uso en casi todos mis proyectos: robusta, gratuita y con un ecosistema enorme. Y tiene la misma trampa que los lenguajes: la versión que trae Ubuntu en sus repos llega vieja. Para trabajar con versiones modernas, el camino correcto es el repositorio oficial del proyecto.

El problema típico no es instalarla: es lo que viene después. El servicio que no arranca, el Permission denied al conectarte, el usuario postgres que no sabes cómo usar. Esta guía cubre el flujo completo, incluyendo esas piedras.

Vamos a ver:

  1. Añadir el repositorio oficial de PostgreSQL.
  2. Instalar la versión que necesites.
  3. Dejar el servicio habilitado y andando.
  4. Crear tu usuario y conectarte con psql.

Al final tendrás PostgreSQL funcionando y listo para tus proyectos.

Nota

Esta guía asume la base de la serie: Setup Ubuntu y WSL para desarrollo profesional, que ya dejó instalado libpq-dev (el conector que tus lenguajes usan para hablar con PostgreSQL).

Tabla de contenidos

Tabla de contenidos

Paso 1: Añade el repositorio oficial

Primero, las herramientas necesarias:

sudo apt update && sudo apt install -y wget lsb-release gnupg postgresql-common

Ahora ejecuta el script oficial de PostgreSQL, que detecta tu distribución y configura el repositorio por ti:

sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh

Paso 2: Instala PostgreSQL

Con el repositorio oficial tienes acceso a todas las versiones soportadas. Para la actual:

sudo apt update
sudo apt install -y postgresql-18

Puedes reemplazar 18 por 17 o la versión que tu proyecto necesite; el repositorio oficial las mantiene todas en paralelo.

Verifica:

psql --version

Paso 3: Habilita y arranca el servicio

sudo systemctl enable postgresql
sudo systemctl start postgresql
sudo systemctl status postgresql
Nota

En WSL moderno esto funciona tal cual, porque systemd viene habilitado por defecto. Si tu instalación de WSL es antigua y systemctl no responde, usa sudo service postgresql start o actualiza WSL con wsl --update.

Paso 4: Crea tu usuario con contraseña

PostgreSQL crea por defecto un usuario administrador llamado postgres, pero trabajar siempre con él es incómodo (cada comando necesita sudo -u postgres). La buena práctica es crear un usuario propio que coincida con tu usuario del sistema.

Créalo como superusuario:

sudo -u postgres createuser --superuser $USER

Y asígnale su contraseña:

sudo -u postgres psql -c "\password $USER"

Te pedirá escribirla dos veces (no se muestra al teclear, es normal).

Nota

¿Para qué la contraseña, si el paso siguiente conecta sin pedirla? Las conexiones locales por terminal usan tu identidad del sistema, pero tus aplicaciones, frameworks y clientes gráficos se conectan por red (localhost:5432) y ahí sí la necesitan. Es la que pondrás en el DATABASE_URL de tus proyectos.

Paso 5: Conéctate con tu usuario

Desde aquí ya no necesitas sudo: la conexión usa tu usuario recién creado.

psql -d postgres

Verifica con quién estás conectado, prueba un comando y sal:

SELECT current_user;
SELECT version();
\q

current_user debe responder con tu nombre de usuario del sistema, no con postgres: esa es la señal de que el Paso 4 funcionó.

Si quieres probar también la conexión por red con contraseña (la que usarán tus apps):

psql -h localhost -U $USER -d postgres

Desde aquí ya puedes crear bases de datos (createdb mi_proyecto) y conectarte desde tus aplicaciones.

Solución de problemas comunes

could not change directory to /home/...: Permission denied

Aparece al usar sudo -u postgres psql desde tu carpeta personal. Es solo un aviso (la conexión funciona igual), pero si te molesta, dale permisos mínimos de lectura a tu home:

sudo chmod 755 /home/$USER

El servicio no arranca al iniciar

Falta habilitarlo:

sudo systemctl enable postgresql

¿El usuario ya existe?

Verifica antes de crearlo:

sudo -u postgres psql -tAc "SELECT 1 FROM pg_roles WHERE rolname = '$USER'"

Si devuelve 1, ya existe y puedes saltar directo a la contraseña.

Mantenimiento

Para eliminar una versión antigua que ya no uses:

sudo apt remove postgresql-16

Y las actualizaciones de tu versión llegan solas con el sistema:

sudo apt update && sudo apt upgrade

Conclusión

PostgreSQL desde el repositorio oficial, servicio habilitado, tu usuario propio y conexión verificada: la base de datos deja de ser el pendiente eterno del entorno y queda lista para cualquier proyecto de la serie.

Si esto te fue útil, el artículo relacionado es el paso lógico: Setup Ubuntu y WSL para desarrollo profesional, donde quedó instalado el conector libpq-dev que tus lenguajes necesitan.

El sábado publico esta misma configuración para macOS, y con ella cerramos la etapa de lenguajes y datos. Si no te lo quieres perder, suscríbete al newsletter en la portada del blog.

Recursos adicionales


Comparte este post:

Post siguiente
Cómo instalar y configurar Java en macOS con SDKMAN