GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar y configurar Postgres 14 Ubuntu 20.04

Postgresql es un sistema de base de datos relacional de objetos de código abierto con más de 30 años de desarrollo activo que le ha valido una sólida reputación por su confiabilidad, robustez de funciones y rendimiento. Postgres es un sistema de administración de bases de datos relacionales de código abierto y gratuito que enfatiza la extensibilidad y el cumplimiento de SQL. Originalmente se llamó POSTGRES, en referencia a sus orígenes como sucesora de la base de datos Ingres desarrollada en la Universidad de California, Berkeley. PostgreSQL se utiliza como almacén de datos primario o almacén de datos para muchas aplicaciones web, móviles, geoespaciales y de análisis. PostgreSQL puede almacenar datos estructurados y no estructurados en un solo producto.

Compruebe también:

  • Cómo usar Ansible para instalar y configurar Postgres 14 en Ubuntu 20.04
  • Cómo instalar y configurar Postgres 14 en FreeBSD 13
  • Permisos de Postgres:crear, actualizar y eliminar usuarios de la base de datos
  • Cómo instalar y configurar Postgres 14 en Debian 11
  • Cómo instalar y configurar Postgres 14 en Centos 8
  • Cómo instalar y configurar Postgres 13 en Centos 8
  • Ejecución de Postgresql 14 con Docker y Docker-Compose
  • Cómo instalar y configurar Postgres 13 Ubuntu 20.04
  • Cómo instalar y configurar Postgres 14 en Fedora 34
  • Cómo instalar y configurar Postgres 14 en OpenSUSE Leap 15.3

Requisitos

Para seguir, asegúrese de tener lo siguiente:

  1. Servidor Ubuntu 20.04
  2. Acceso root al servidor o usuario con acceso root
  3. Acceso a Internet desde el servidor
  4. Conocimiento de terminal Linux

Tabla de contenido

  1. Asegúrese de que los paquetes de su sistema estén actualizados
  2. Instalación de Postgres 14
  3. Métodos de autenticación de roles y bases de datos de PostgreSQL
  4. Conexión a la base de datos de Postgres
  5. Configuración de instancia de postgres para acceso remoto
  6. Administración de usuarios
  7. Conectándose a la instancia desde un host remoto

1. Asegúrese de que los paquetes de su sistema estén actualizados

Actualicemos el índice de paquetes local de su servidor usando este comando:

sudo apt update

Luego actualizamos los paquetes en nuestro sistema con esto:

sudo apt -y update

2. Instalación de PostgreSQL 14

Postgres se proporciona en los repositorios predeterminados de Ubuntu. Para verificar la versión proporcionada, use este comando:

sudo apt-cache search postgresql | grep postgresql

Los paquetes predeterminados proporcionados por los repositorios predeterminados son postgres 12. Si está interesado en Postgres 12, puede instalarlo con los siguientes comandos. El -contrib paquete que agrega algunas utilidades y funcionalidades adicionales:

sudo apt install postgresql postgresql-contrib

Dado que buscamos instalar Postgres 14, necesitaremos agregar un repositorio adicional que proporcione los paquetes

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

Luego importe la clave de firma del repositorio:

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

Ahora actualicemos las listas de paquetes:

sudo apt -y update

Luego instalamos la versión específica de postgres que queremos. Usa postgresql-14 en lugar de postgresql :

sudo apt -y install postgresql-14

Una vez que la instalación sea exitosa, se iniciará Postgres 14.

Utilice este comando para comprobar el estado del servicio:

$ sudo systemctl status postgresql
● postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
     Active: active (exited) since Thu 2021-10-14 09:32:22 UTC; 55s ago
   Main PID: 204727 (code=exited, status=0/SUCCESS)
      Tasks: 0 (limit: 4710)
     Memory: 0B
     CGroup: /system.slice/postgresql.service

Oct 14 09:32:22 ip-172-26-11-229 systemd[1]: Starting PostgreSQL RDBMS...
Oct 14 09:32:22 ip-172-26-11-229 systemd[1]: Finished PostgreSQL RDBMS.

A continuación, verifiquemos la instalación conectándonos al servidor de la base de datos PostgreSQL y verificando su versión. Usa este comando:

sudo -u postgres psql -c "SELECT version();"

Salida:

                                                             version
----------------------------------------------------------------------------------------------------------------------------------
 PostgreSQL 14.0 (Ubuntu 14.0-1.pgdg20.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, 64-bi
(1 row)

3. Métodos de autenticación de roles y bases de datos de PostgreSQL

PostgreSQL usa un concepto llamado roles para manejar la autenticación y autorización del cliente. De forma predeterminada, Postgres está configurado para usar ident authentication , lo que significa que asocia roles de Postgres con una cuenta de sistema Unix/Linux coincidente. Si existe un rol dentro de Postgres, un nombre de usuario de Unix/Linux con el mismo nombre puede iniciar sesión como ese rol.

El procedimiento de instalación creó una cuenta de usuario llamada postgres que está asociada con el rol predeterminado de postgres. Para usar PostgreSQL, puede iniciar sesión en esa cuenta.

PostgreSQL admite múltiples métodos de autenticación. Los métodos más utilizados son:

  • Trust – Un rol puede conectarse sin contraseña, siempre que se cumplan las condiciones definidas en el pg_hba.conf se cumplen.
  • Password – Un rol puede conectarse proporcionando una contraseña. Las contraseñas se pueden almacenar como scram-sha-256 , md5 y password (clear-text ).
  • Ident – Solo se admite en conexiones TCP/IP. Funciona obteniendo el nombre de usuario del sistema operativo del cliente, con una asignación de nombre de usuario opcional.
  • Peer – Igual que Ident, pero solo se admite en conexiones locales.

4. Conectando a la base de datos de postgres

1. Cambiando a postres usuario

Cambie a la cuenta de postgres en su servidor escribiendo:

sudo -i -u postgres

Ahora puede acceder a un aviso de Postgres inmediatamente escribiendo:

$ psql
psql (14.0 (Ubuntu 14.0-1.pgdg20.04+1))
Type "help" for help.

postgres=#

Esto lo iniciará en el indicador de PostgreSQL, y desde aquí puede interactuar con el sistema de administración de la base de datos de inmediato.

2. Al ejecutar el comando como usuario de postgres

Use esto para ejecutar el comando directamente como postgres usuario usando sudo

$ sudo -u postgres psql
psql (14.0 (Ubuntu 14.0-1.pgdg20.04+1))
Type "help" for help.

postgres=#

5. Configuración de instancia de postgres para acceso remoto

Por defecto, postgres solo está configurado para acceder localmente. Esto no es ideal si queremos acceder a nuestro servidor desde otro host. En esta sección vamos a configurar postgres para permitir el acceso desde hosts remotos.

El archivo de configuración de Postgres 14 se puede encontrar en esta ruta /etc/postgresql/14/main/pg_hba.conf

$ sudo file /etc/postgresql/14/main/pg_hba.conf
/etc/postgresql/14/main/pg_hba.conf: ReStructuredText file, ASCII text

Cambiar identificación de pares a confianza

Use este comando para cambiar el peer trust

sed -i '/^local/s/peer/trust/' /etc/postgresql/14/main/pg_hba.conf

Esto actualizará la línea en el archivo de configuración a esto:

# "local" is for Unix domain socket connections only
local   all             all                                     trust

Agregue un bloque para permitir el acceso desde cualquier lugar

Agregue este contenido al archivo /etc/postgresql/14/main/pg_hba.conf para permitir el acceso a la contraseña de todos los hosts:

vim /etc/postgresql/14/main/pg_hba.conf

Luego agrega esto:

host    all             all             0.0.0.0/0                md5

Asegúrese de que PostgreSQL esté escuchando *

Agregue esta línea a la configuración aquí /etc/postgresql/14/main/postgresql.conf para permitir que postgres escuche en todos los hosts

listen_addresses='*'

Para aplicar las configuraciones, necesitamos reiniciar el servicio postgres 14.

Habilite y reinicie el servidor postgresql para recargar las configuraciones:

sudo systemctl restart postgresql
sudo systemctl enable postgresql

6. Gestión de usuarios

Crear superusuario:

Sería mejor si creamos un superusuario para administrar el servicio de postgres. Este es ese usuario que tiene permisos para administrar otros usuarios y bases de datos.

Conectarse a la base de datos como postres rol

$ sudo -u postgres psql
could not change directory to "/root": Permission denied
psql (14.0 (Ubuntu 14.0-1.pgdg20.04+1))
Type "help" for help.

postgres=#

Crear superusuario con nombre root usando este comando:

CREATE ROLE root WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'passwordhere';

Verifique si el usuario ha sido creado y si se le otorgaron los privilegios necesarios:

postgres=# CREATE ROLE root WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'passwordhere';
CREATE ROLE
postgres=# \du
                                   List of roles
 Role name |                         Attributes                         | Member of
-----------+------------------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
 root      | Superuser, Create role, Create DB                          | {}

postgres=#

Administración de usuarios de aplicaciones

Use esto para crear una base de datos, cree un usuario y otorgue a ese usuario todos los accesos a esa base de datos:

create database app_db_name;
create user app_user with encrypted password 'dbpassword';
grant all privileges on database app_db_name to app_user;

Consulte esta guía completa sobre administración de usuarios y permisos en postgres aquí.

7. Conexión a la instancia desde un host remoto

Use este comando para probar que puede conectarse:

psql 'postgres://<username>:<password>@<host>:<port>/<db>?sslmode=disable'

# like
psql 'postgres://root:[email protected]:5432/postgres?sslmode=disable'

Conclusión

Hasta este punto, hemos logrado instalar Postgresql 14 en un servidor Ubuntu, realizar algunas configuraciones básicas y luego realizar una administración básica de usuarios.


Ubuntu
  1. Cómo instalar y configurar Redis en Ubuntu 18.04

  2. Cómo instalar y configurar Redmine en Ubuntu 18.04

  3. Cómo instalar Postgresql y phpPgAdmin en Ubuntu 15.04

  4. Cómo instalar y configurar Postgres 13 Ubuntu 20.04

  5. Cómo instalar y configurar Postgres 14 en Debian 11

Cómo instalar y configurar GitLab en Ubuntu 16.04

Cómo instalar y configurar Cacti en Ubuntu 20.04

Cómo instalar y configurar Git en Ubuntu 20.04

Cómo instalar y configurar OpenVAS 9 en Ubuntu

Cómo instalar y configurar PostgreSQL en Ubuntu

Cómo instalar y configurar Odoo en Ubuntu Linux