Instalación de PostgreSQL: Una guía completa paso a paso
Instala PostgreSQL en Linux, macOS o Windows, luego crea un usuario, verifica el acceso y configura conexiones de red seguras.
Instalación de PostgreSQL: Una Guía Completa Paso a Paso
La instalación de PostgreSQL suele ser sencilla, pero los detalles difieren entre Linux, macOS y Windows. El objetivo no es solo poner el servicio en funcionamiento; también necesitas un usuario de base de datos utilizable, una forma limpia de conectarte y valores predeterminados seguros para el acceso a la red.
Usa esta guía para instalar PostgreSQL para desarrollo o una configuración de servidor pequeño, luego adapta las rutas y números de versión a los paquetes actuales de tu sistema operativo.
Prerrequisitos
Antes de comenzar el proceso de instalación, asegúrate de que tu sistema cumpla con estos requisitos básicos:
- Privilegios Administrativos: Necesitarás privilegios
sudoen Linux/macOS o derechos de administrador en Windows para instalar software y configurar servicios del sistema. - Conexión a Internet: Requerida para descargar los paquetes de instalación.
- Espacio en Disco Suficiente: Aunque la instalación inicial es relativamente pequeña, tu base de datos crecerá. Asegúrate de tener suficiente espacio en disco para tus datos.
Instalación en Linux
Las distribuciones de Linux suelen ofrecer PostgreSQL a través de sus repositorios de paquetes predeterminados, lo que hace que la instalación sea sencilla.
Debian/Ubuntu
Para sistemas basados en Debian como Ubuntu, puedes instalar PostgreSQL usando apt.
Actualizar Listas de Paquetes: Siempre comienza actualizando las listas de tu gestor de paquetes para asegurarte de obtener los paquetes más recientes disponibles.
sudo apt updateInstalar PostgreSQL: Instala el paquete
postgresql, que a menudo incluye el servidor, las utilidades de cliente y la documentación. Puedes especificar una versión (por ejemplo,postgresql-16) o instalar la versión predeterminada usando solopostgresql.sudo apt install postgresql postgresql-contribEl paquete
postgresql-contribproporciona utilidades y funcionalidades adicionales.Nota: En Debian/Ubuntu, el servicio de PostgreSQL suele iniciarse automáticamente después de la instalación y se crea un usuario
postgrespredeterminado (tanto de sistema como de base de datos).Verificar Instalación: Comprueba el estado del servicio.
sudo systemctl status postgresqlDeberías ver una salida que indica que está
active (exited)oactive (running).exitedes normal para la unidad de servicio principal si gestiona múltiples clústeres que se ejecutan como procesos separados.
RHEL/CentOS/Fedora
Para sistemas basados en Red Hat, usa dnf (o yum para versiones antiguas de CentOS/RHEL).
Instalar Repositorio de PostgreSQL: PostgreSQL proporciona su propio repositorio para versiones más recientes que las disponibles en los repositorios predeterminados del SO. Se recomienda usar este para las últimas versiones estables.
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm # Para EL-9, usa: sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm # Reemplaza EL-8-x86_64 con tu versión específica del SO y arquitectura si es necesario.Deshabilitar Módulo PostgreSQL Predeterminado (si aplica): Algunas versiones de RHEL/CentOS tienen un módulo PostgreSQL predeterminado. Deshabilítalo para evitar conflictos con el repositorio PGDG.
sudo dnf -qy module disable postgresqlInstalar PostgreSQL: Instala los paquetes del servidor y contrib. Reemplaza
16con tu versión deseada.sudo dnf install -y postgresql16-server postgresql16-contribInicializar el Clúster de Base de Datos: A diferencia de Debian/Ubuntu, en sistemas basados en RHEL, a menudo necesitas inicializar manualmente el clúster de base de datos.
sudo /usr/pgsql-16/bin/postgresql-16-setup initdbAjusta la ruta
/usr/pgsql-16/binypostgresql-16-setupsegún tu versión instalada.Iniciar y Habilitar el Servicio de PostgreSQL: Inicia el servicio y configúralo para que se inicie al arrancar.
sudo systemctl enable postgresql-16 sudo systemctl start postgresql-16Verificar Instalación: Comprueba el estado del servicio.
sudo systemctl status postgresql-16
Instalación en macOS
En macOS, Homebrew es el método recomendado y más fácil para instalar PostgreSQL.
Instalar Homebrew (si aún no lo has hecho):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Sigue las instrucciones en pantalla, incluyendo agregar Homebrew a tu
PATH.Instalar PostgreSQL: Usa Homebrew para instalar PostgreSQL. Puedes especificar una versión (por ejemplo,
postgresql@16) o instalar la última versión estable por defecto.brew install postgresqlIniciar el Servicio de PostgreSQL: Homebrew instala PostgreSQL como un servicio en segundo plano.
brew services start postgresqlPara detenerlo:
brew services stop postgresqlPara reiniciarlo:brew services restart postgresqlVerificar Instalación: Comprueba si
psqlestá disponible y conectado.psql -VPara conectarte a la base de datos predeterminada:
psql postgresConsejo: Para una experiencia visual basada en aplicaciones, considera Postgres.app, que proporciona una forma sencilla de ejecutar y gestionar PostgreSQL sin la línea de comandos.
Instalación en Windows
Para Windows, el instalador gráfico de EnterpriseDB (EDB) es el método más común para una configuración local de PostgreSQL.
Descargar el Instalador: Visita la página oficial de descarga de PostgreSQL (www.postgresql.org/download/windows/) y descarga el último instalador de EDB para tu versión de Windows.
Ejecutar el Instalador: Ejecuta el archivo
.exedescargado. El asistente de instalación te guiará a través del proceso.- Directorio de Instalación: Elige dónde se instalará PostgreSQL (por ejemplo,
C:\Program Files\PostgreSQL\16). - Directorio de Datos: Selecciona una ubicación para tus archivos de base de datos (por ejemplo,
C:\Program Files\PostgreSQL\16\data). Esto es crucial y debería estar idealmente en un disco rápido y confiable. - Contraseña para el Superusuario
postgres: Establece una contraseña segura para el superusuario de base de datospostgrespredeterminado. Recuerda esta contraseña ya que la necesitarás para conectarte inicialmente. - Puerto: El puerto predeterminado de PostgreSQL es
5432. Generalmente es seguro dejarlo como predeterminado a menos que tengas conflictos. - Locale: Elige el locale predeterminado para tu clúster de base de datos.
- Directorio de Instalación: Elige dónde se instalará PostgreSQL (por ejemplo,
Stack Builder: Después de la instalación, el instalador de EDB podría lanzar Stack Builder. Esta herramienta ayuda a instalar controladores, herramientas y extensiones adicionales (como
pgAdmin 4). Se recomienda encarecidamente instalarpgAdmin 4para una interfaz gráfica para gestionar tus bases de datos.Verificar Instalación: Después de la instalación, puedes abrir
pgAdmin 4(generalmente se encuentra en el Menú Inicio bajo "PostgreSQL 16" o similar) e intentar conectarte a tu servidor local usando el superusuariopostgresy la contraseña que estableciste.
Configuración Inicial y Pasos Posteriores a la Instalación
Una vez que PostgreSQL está instalado, estos pasos son esenciales para una configuración funcional y segura.
1. Establecer la Variable de Entorno PATH (Opcional, principalmente para Windows/macOS si no se encuentra psql)
Para ejecutar fácilmente psql y otros binarios de PostgreSQL desde cualquier ubicación de terminal, agrega el directorio bin de PostgreSQL al PATH de tu sistema.
- Linux: A menudo lo maneja el gestor de paquetes, pero si no, agrega
/usr/pgsql-X.Y/bin(RHEL) o/usr/lib/postgresql/X.Y/bin(Debian/Ubuntu) a tuPATH. - macOS (Homebrew):
brewmaneja esto automáticamente. - Windows: Durante la instalación de EDB, hay una opción para agregar al
PATH. Si no se selecciona, puedes agregarC:\Program Files\PostgreSQL\16\bin(ajusta la versión) manualmente a través dePropiedades del Sistema > Variables de Entorno.
2. Acceder a la Terminal psql
psql es la interfaz de línea de comandos para PostgreSQL, crucial para la administración y consultas.
Linux/macOS: Cambia al usuario de sistema
postgres(creado durante la instalación).sudo -i -u postgres psqlAhora estás conectado a la base de datos
postgrescomo usuariopostgres. Escribe\qpara salir.Windows: Abre
SQL Shell (psql)desde el Menú Inicio (PostgreSQL 16 > SQL Shell (psql)). Te pedirá detalles del servidor y la contraseña del usuariopostgres.
3. Crear un Nuevo Usuario de Base de Datos y Base de Datos
Es una buena práctica no usar el superusuario postgres para el uso diario de aplicaciones. Crea un nuevo usuario y base de datos dedicados.
Inicia sesión como superusuario
postgres(como se mostró anteriormente).Crea un nuevo usuario (rol):
CREATE USER miusuario WITH PASSWORD 'contraseña_segura';Consejo: Reemplaza
miusuarioycontraseña_seguracon credenciales seguras.Crea una nueva base de datos y asigna propiedad:
CREATE DATABASE mibasededatos OWNER miusuario;Otorga privilegios (si es necesario, o el propietario de
CREATE DATABASEmaneja esto para operaciones básicas):GRANT ALL PRIVILEGES ON DATABASE mibasededatos TO miusuario;Sal de
psql:\q
4. Configurar pg_hba.conf para Acceso a la Red
El archivo pg_hba.conf controla la autenticación de clientes. Por defecto, PostgreSQL podría permitir solo conexiones desde localhost (127.0.0.1).
Ubicación: Este archivo está típicamente en el directorio de datos de PostgreSQL (por ejemplo,
/var/lib/postgresql/16/main/pg_hba.confen Debian/Ubuntu,/var/lib/pgsql/16/data/pg_hba.confen RHEL, oC:\Program Files\PostgreSQL\16\data\pg_hba.confen Windows).Editar el archivo (como root/administrador):
sudo nano /etc/postgresql/16/main/pg_hba.conf(Ajusta la ruta para tu SO y versión).
Para permitir que
miusuariose conecte desde una subred confiable usando autenticación por contraseña, agrega una línea como esta:# TYPE DATABASE USER ADDRESS METHOD host mibasededatos miusuario 192.168.1.0/24 scram-sha-256scram-sha-256es el método de contraseña preferido para implementaciones modernas de PostgreSQL. Evita0.0.0.0/0a menos que el servidor también esté protegido por reglas de firewall estrictas y realmente necesites acceso amplio.Recargar PostgreSQL: Después de modificar
pg_hba.conf, debes recargar el servicio de PostgreSQL para que los cambios surtan efecto.sudo systemctl reload postgresql # Linux # Para Homebrew en macOS: # brew services restart postgresql # Para Windows, reinicia el servicio de PostgreSQL a través de Services.msc
5. Configurar postgresql.conf (Escucha de Red)
Por defecto, PostgreSQL a menudo escucha solo en localhost. Para aceptar conexiones de otras máquinas, necesitas modificar postgresql.conf.
Ubicación: Este archivo está típicamente en el mismo directorio que
pg_hba.conf.Editar el archivo:
sudo nano /etc/postgresql/16/main/postgresql.confEncuentra el parámetro
listen_addressesy cámbialo solo si los clientes remotos necesitan conectarse:#listen_addresses = 'localhost' # qué dirección(es) IP escuchar; listen_addresses = 'localhost,192.168.1.10'Usa la dirección IP privada real del servidor en lugar de
192.168.1.10.listen_addresses = '*'también funciona, pero debe combinarse con reglas restrictivas enpg_hba.confy el firewall.Reiniciar PostgreSQL: Los cambios en
postgresql.confrequieren un reinicio completo del servicio.sudo systemctl restart postgresql # Linux # brew services restart postgresql # macOS # Para Windows, reinicia el servicio de PostgreSQL a través de Services.msc
Verificar Tu Instalación
Después de todas las configuraciones, realiza una verificación final:
Comprueba el estado del servicio de PostgreSQL (
systemctl status postgresqlobrew services listo Servicios de Windows).Conéctate como tu nuevo usuario a tu nueva base de datos:
psql -h localhost -U miusuario -d mibasededatosSe te pedirá la contraseña de
miusuario. Si es exitoso, verás el promptmibasededatos=>. Escribe\qpara salir.Si te conectas desde una máquina diferente, reemplaza
localhostcon la dirección IP del servidor.
Consejos y Mejores Prácticas
- Contraseñas Seguras: Siempre usa contraseñas seguras y únicas para todos los usuarios de la base de datos, especialmente el superusuario
postgres. - Directorio de Datos Dedicado: Para producción, considera colocar el directorio de datos en un volumen dedicado o arreglo RAID para rendimiento y confiabilidad.
- Copias de Seguridad Regulares: Implementa una estrategia robusta de copias de seguridad desde el primer día. Las utilidades
pg_dumpypg_basebackupde PostgreSQL son excelentes herramientas para esto. - Mantenerse Actualizado: Mantén tu instalación de PostgreSQL actualizada para beneficiarte de correcciones de errores, parches de seguridad y nuevas funciones. Usa el gestor de paquetes de tu sistema o sigue el proceso de actualización del instalador de EDB.
- Configuración del Firewall: Si permites conexiones remotas, asegúrate de que el firewall de tu sistema (por ejemplo,
ufw,firewalld, Firewall de Windows) esté configurado para permitir tráfico entrante en el puerto5432(o tu puerto elegido).
Conclusión
Una vez que PostgreSQL está instalado, verifica el servicio, conéctate con psql, crea un rol de aplicación y mantén el acceso remoto limitado. Para producción, tu próximo paso deberían ser las copias de seguridad y la monitorización antes de que la base de datos comience a contener datos importantes.