Como configurar servidor postgresql
www.onlinetis.com
Para configurar un servidor PostgreSQL, necesitas instalar el software, inicializar la base de datos, y luego ajustar los parámetros de configuración en los archivos postgresql.conf
y pg_hba.conf
. Aquí te muestro los pasos principales:
1. Instalación y Inicialización
Primero, instala el servidor de PostgreSQL. Los comandos varían según tu sistema operativo. Por ejemplo, en Ubuntu/Debian, usarías:
sudo apt update
sudo apt install postgresql
En RHEL/CentOS, el comando sería:
sudo yum install postgresql-server postgresql-contrib
Una vez instalado, el servicio generalmente se inicia automáticamente. El siguiente paso es inicializar la base de datos si no lo ha hecho el instalador. En algunas distribuciones, se realiza con este comando:
sudo /usr/bin/postgresql-setup initdb
Luego, debes iniciar el servicio de PostgreSQL. En sistemas que usan systemd
(como la mayoría de los Linux modernos):
sudo systemctl start postgresql
sudo systemctl enable postgresql # Para que inicie automáticamente en el arranque
2. Configuración de Acceso
El usuario principal de PostgreSQL por defecto se llama postgres
. Para administrarlo, primero cambia al usuario postgres
en la terminal:
sudo -i -u postgres
Ahora puedes acceder a la consola de PostgreSQL (psql
):
psql
Para salir de la consola, escribe \q
y presiona Enter. Es importante establecer una contraseña para el usuario postgres
para mayor seguridad. Desde la consola psql
:
ALTER USER postgres WITH PASSWORD 'tu_contraseña_segura';
No olvides remplazar 'tu_contraseña_segura' con una contraseña fuerte.
3. Archivos de Configuración
Los dos archivos de configuración más importantes son postgresql.conf
y pg_hba.conf
. Su ubicación puede variar, pero a menudo están en /etc/postgresql/versión/main/
o /var/lib/pgsql/data/
.
postgresql.conf
Este archivo controla los parámetros del servidor. Aquí hay algunas configuraciones comunes que podrías querer ajustar:
listen_addresses = 'localhost'
: Por defecto, PostgreSQL solo escucha conexiones locales. Para permitir conexiones desde otras máquinas, cámbialo a'*'
o a la dirección IP específica de la máquina remota.port = 5432
: Este es el puerto por defecto de PostgreSQL. Puedes cambiarlo si lo necesitas.max_connections = 100
: Define el número máximo de conexiones concurrentes. Ajusta este valor según la carga de trabajo esperada.shared_buffers = 128MB
: La cantidad de memoria compartida que el servidor utiliza. Es una de las configuraciones más críticas para el rendimiento. Un buen punto de partida es el 25% de tu RAM total.
Después de cualquier cambio en postgresql.conf
, debes reiniciar el servicio para que los cambios surtan efecto:
sudo systemctl restart postgresql
pg_hba.conf
(Host-Based Authentication)
Este archivo controla la autenticación de los clientes. Cada línea especifica cómo un cliente puede conectarse. La sintaxis es la siguiente: tipo base_de_datos usuario dirección_ip método_de_autenticación
.
host all all 127.0.0.1/32 trust
: Permite a cualquiera en tu máquina local conectarse a cualquier base de datos.trust
significa que no se requiere contraseña. No usestrust
para conexiones externas.host all all 0.0.0.0/0 md5
: Para conexiones externas, esta línea permitiría a cualquier host (0.0.0.0/0) conectarse a cualquier base de datos con cualquier usuario, siempre que proporcionen la contraseña correcta (usando el métodomd5
). Es la configuración más común para accesos remotos.
Para permitir una conexión desde una IP específica (ej. 192.168.1.100
), la línea sería:
host all all 192.168.1.100/32 md5
Después de modificar pg_hba.conf
, también necesitas recargar la configuración o reiniciar el servicio:
sudo systemctl reload postgresql
Con estos pasos, tendrás un servidor PostgreSQL básico y seguro, listo para ser utilizado.