Servidor PostgreSQL
Instalar servicio
sudo apt install -y postgresql postgresql-contribA diferencia de MariaDB/MySQL, el servicio arranca y se habilita solo tras la instalación. Podés confirmarlo con:
shellsudo systemctl status postgresql
Configurar servicio
PostgreSQL crea automáticamente un usuario de sistema y de base de datos llamado postgres, sin password definida (se accede vía autenticación peer desde el usuario de sistema postgres). Para poder usar autenticación por password (necesario si vas a conectar apps o herramientas externas), primero definí una:
1. Entrar a la consola como el usuario postgres
sudo -u postgres psql2. Definir password para el usuario postgres
ALTER USER postgres WITH PASSWORD 'new_password';3. Salir
\qSi vas a conectar desde fuera de
localhost, además hay que habilitar autenticación por password enpg_hba.conf(por defecto en/etc/postgresql/<version>/main/pg_hba.conf), cambiando el métodopeeroscram-sha-256según corresponda, y reiniciar el servicio:shellsudo systemctl restart postgresql
Crear Usuarios
1. Entrar a la consola (como postgres o un usuario con privilegios)
sudo -u postgres psql2. Creación del usuario con password
CREATE USER new_user WITH PASSWORD 'new_password';3. Crear una base de datos asignándole como dueño al usuario (equivalente al GRANT ALL PRIVILEGES de MariaDB/MySQL, ya que en Postgres los privilegios van atados a nivel de base de datos, no de forma global con *.*)
CREATE DATABASE nombre_base_de_datos OWNER new_user;Si la base de datos ya existe y solo querés otorgar privilegios sobre ella a un usuario existente:
sqlGRANT ALL PRIVILEGES ON DATABASE nombre_base_de_datos TO new_user;
Importar SQL (vía terminal)
1. Abrir CLI de PostgreSQL apuntando a la base de datos
psql -U new_user -d nombre_base_de_datos2. Cargar archivo SQL
\i /path/al/archivo.sqlTambién se puede importar en un solo paso, sin entrar al CLI:
shellpsql -U new_user -d nombre_base_de_datos -f /path/al/archivo.sql
Otras opciones de gestionar serían vía software (DBeaver, pgAdmin) o web (pgAdmin en modo servidor) en caso de haber configurado lo necesario para sus usos