PostgreSQL (a menudo abreviado como Postgres) es un sistema de administración de bases de datos relacionales de objetos (ORDBMS) que enfatiza la extensibilidad y el cumplimiento de estándares.
Tiene más de 30 años de desarrollo activo y una arquitectura comprobada que le ha valido una sólida reputación de confiabilidad, integridad de datos y rendimiento.
PostgreSQL se publica bajo la licencia de PostgreSQL y está disponible para Linux, Microsoft Windows, FreeBSD, OpenBSD y macOS.
En esta publicación, veremos cómo instalar PostgreSQL en Debian 11 / Debian 10.
Añadir repositorio PostgreSQL
PostgreSQL publica paquetes para el sistema operativo Debian a través de su repositorio dedicado, y los paquetes en su repositorio son más recientes que los disponibles en el repositorio del sistema operativo.
Primero, actualice el índice del repositorio usando apt
comando
sudo apt update
Luego, instale el soporte HTTPS para apt para obtener paquetes de Internet.
sudo apt install -y curl apt-transport-https
Ahora, importe la clave de firma de PostgreSQL.
# Debian 11 curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /usr/share/keyrings/postgresql-keyring.gpg # Debian 10 curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
Finalmente, agregue la información del repositorio de PostgreSQL al sistema con el siguiente comando.
# Debian 11 echo "deb [signed-by=/usr/share/keyrings/postgresql-keyring.gpg] http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql.list # Debian 10 echo "deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql.list
Instalar PostgreSQL en Debian
Una vez que haya agregado el repositorio de PostgreSQL, ejecute el siguiente comando para actualizar el índice del repositorio.
sudo apt update
Luego, instale PostgreSQL usando el siguiente comando basado en la versión de PostgreSQL que desea instalar.
# PostgreSQL 13 sudo apt install -y postgresql-13 # PostgreSQL 12 sudo apt install -y postgresql-12
A estas alturas, el servicio PostgreSQL estará en funcionamiento. Puede verificar el estado del servicio con el siguiente comando.
sudo systemctl status postgresql
Salida:
● postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Active: active (exited) since Wed 2021-09-15 14:19:30 CDT; 42s ago Main PID: 3759 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 2343) Memory: 0B CGroup: /system.slice/postgresql.service Sep 15 14:19:30 debian.itzgeek.local systemd[1]: Starting PostgreSQL RDBMS... Sep 15 14:19:30 debian.itzgeek.local systemd[1]: Started PostgreSQL RDBMS.
Configurar servidor PostgreSQL
De manera predeterminada, PostgreSQL escucha en el servidor local (127.0.0.1), lo que quizás no siempre desee, ya que es posible que las aplicaciones externas necesiten conectarse a la base de datos. Entonces, configuraremos PostgreSQL para escuchar la dirección IP del sistema.
# PostgreSQL 13 sudo nano /etc/postgresql/13/main/postgresql.conf # PostgreSQL 12 sudo nano /etc/postgresql/12/main/postgresql.conf
Establecer las listen_addresses
a *
o <IPAddress>
.
listen_addresses = '192.168.0.10'
Reinicie el servicio PostgreSQL.
sudo systemctl restart postgresql
Ahora puede usar el netstat
comando para confirmar si PostgreSQL está escuchando en el puerto 5432 o no.
sudo netstat -antup | grep 5432
Salida:
tcp 0 0 192.168.0.10:5432 0.0.0.0:* LISTEN 5265/postgres
LEER :Comando netstat no encontrado en Debian – Solución rápida
Acceda a PostgreSQL
Para administrar la base de datos PostgreSQL, deberá iniciar sesión como postgres
(usuario de Linux) y luego tiene que acceder al shell de la base de datos usando psql
comando.
sudo -u postgres psql
Salida:
postgres@server:~$ psql psql (13.4 (Debian 13.4-1.pgdg100+1)) Type "help" for help. postgres=#
En psql
shell, ejecute el siguiente comando para cambiar el postgres
usuario (Contraseña de administrador de la base de datos.
postgres=# \password
O
postgres=# \password postgres
Crear base de datos y usuario de PostgreSQL
Primero, cree un usuario de base de datos con el siguiente comando.
CREATE USER mydb_user WITH ENCRYPTED PASSWORD 'password';
A continuación, cree una base de datos con el siguiente comando.
CREATE DATABASE mydb WITH OWNER mydb_user;
Luego, puede otorgar privilegios a mydb_user
en la base de datos recién creada.
GRANT ALL PRIVILEGES ON DATABASE mydb TO mydb_user;
Ahora, verifique si el usuario ha sido creado o no.
postgres=# \du
Salida:
postgres=# \du List of roles Role name | Attributes | Member of -----------+------------------------------------------------------------+----------- mydb_user | | {} postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {} postgres=#
Además, puede enumerar las bases de datos para ver si su base de datos mydb
ha sido creado.
postgres=# \l
Salida:
postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+-----------+----------+-------------+-------------+------------------------- mydb | mydb_user | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =Tc/mydb_user + | | | | | mydb_user=CTc/mydb_user postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (4 rows) postgres=#
Finalmente, inicie sesión en mydb
con el usuario de base de datos mydb_user
.
psql -h localhost -d mydb -U mydb_user
Salida:
Password for user mydb_user: psql (13.4 (Debian 13.4-1.pgdg110+1)) SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off) Type "help" for help. mydb=>
Conclusión
Eso es todo. Espero que haya aprendido a instalar PostgreSQL en Debian 11 / Debian 10.