PostgreSQL es uno de los populares sistemas de bases de datos relacionales de objetos de código abierto, multiplataforma, robusto, de alto rendimiento y confiable con una comunidad sólida.

Se remonta a 1986 como parte de la POSTGRES proyecto en la Universidad de California, Berkeley, y lleva 30 años de desarrollo activo en su plataforma principal. Su rendimiento constante a lo largo de los años ha demostrado su integridad, arquitectura y extensibilidad para uso empresarial. Es compatible con ACID y ofrece soporte para complementos potentes como el popular extensor de base de datos geoespacial PostGIS.

Cubriremos la instalación de PostgreSQL en plataformas comunes en este artículo.

Así que empecemos.

Ubuntu

PostgreSQL está disponible para todos los sabores y versiones de Ubuntu. Tiene la opción de instalar y usar la versión disponible de forma predeterminada con su versión de Ubuntu y admitida durante su vida útil o de usar una versión específica agregando el repositorio de PostgreSQL e instalando el mismo. Cubriremos ambas opciones aquí.

Para usar la versión compatible predeterminada proporcionada por el repositorio de Ubuntu, ejecute:

$ sudo apt-get update
$ sudo apt-get -y install postgresql

PostgreSQL Apt Repository es compatible con las versiones LTS actuales de Ubuntu, es decir, 20.04, 18.04 y 16.04. Aunque puede que no sea totalmente compatible, los mismos paquetes también funcionan en versiones que no son LTS al usar la versión LTS más cercana.

Para usar Repositorio apt de PostgreSQL, sigue estos pasos:

$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get -y install postgresql

Para instalar una versión específica del repositorio de PostgreSQL, en lugar de solo postgresql que se refiere a la última versión, especifíquela como postgresql-12:

$ sudo apt-get -y install postgresql-12

El repositorio también contiene diferentes paquetes, incluidos complementos de terceros. Por ejemplo, los paquetes comúnmente disponibles para la versión 12 de PostgreSQL incluyen:

postgresql-cliente-12 bibliotecas de cliente y binarios de cliente
postgresql-12 servidor de base de datos central
postgresql-contrib-9.x módulos adicionales suministrados (parte del paquete postgresql-xx en la versión 10 y posteriores)
libpq-dev bibliotecas y encabezados para el desarrollo de frontend de lenguaje C
postgresql-servidor-dev-12 bibliotecas y encabezados para el desarrollo de backend en lenguaje C
pgadmin4 Utilidad de administración gráfica pgAdmin 4

Una vez que se completa la instalación, puede verificar el estado del servicio de base de datos usando el siguiente comando:

$ sudo systemctl status postgresql.service

Para Ubuntu, después de la instalación, el servicio debe estar habilitado y ejecutarse como:

$ sudo systemctl status postgresql.service
● postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
     Active: active (exited) since Sun 2021-06-06 16:06:45 UTC; 46s ago
   Main PID: 3364 (code=exited, status=0/SUCCESS)
      Tasks: 0 (limit: 1113)
     Memory: 0B
     CGroup: /system.slice/postgresql.service

Jun 06 16:06:45 ubuntu20cloud systemd[1]: Starting PostgreSQL RDBMS...
Jun 06 16:06:45 ubuntu20cloud systemd[1]: Finished PostgreSQL RDBMS.
$

CentOS

Al igual que Ubuntu, los repositorios RHEL / CentOS también contienen una versión específica de PostgreSQL, que es compatible durante la vida útil del sistema operativo. Puede instalar el mismo usando:

$ sudo yum install -y postgresql-server

o puedes usar DNF si usa CentOS 8.

$ sudo dnf install -y postgresql-server

Ejecute los siguientes comandos después de la instalación para inicializar la base de datos, habilitar el servicio PostgreSQL e iniciarlo:

$ sudo postgresql-setup initdb
$ sudo systemctl enable postgresql.service
$ sudo systemctl start postgresql.service

O para usar los paquetes directamente desde Repositorios yum de PostgreSQL, tenemos que agregar el repositorio como:

$ sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

Y luego, para instalar una versión específica de PostgreSQL como la versión 13, que es la última versión estable al momento de escribir este artículo, use:

$ sudo yum install -y postgresql13-server

El repositorio de yum también contiene paquetes adicionales para PostgreSQL, de los cuales algunos de los importantes se enumeran a continuación:

postgresql-cliente bibliotecas y binarios de cliente
postgresql-servidor servidor de base de datos central
postgresql-contrib módulos adicionales suministrados
postgresql-devel bibliotecas y encabezados para el desarrollo del lenguaje C

Ejecute los siguientes pasos después de la instalación para inicializar la base de datos, habilitar el servicio PostgreSQL e iniciarlo:

$ sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
$ sudo systemctl enable postgresql-13
$ sudo systemctl start postgresql-13

Puede verificar el estado del servicio de base de datos utilizando el siguiente comando:

$ sudo systemctl status postgresql.service
● postgresql.service - PostgreSQL database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2021-06-06 16:39:35 GMT; 1min 12s ago
  Process: 7011 ExecStart=/usr/bin/pg_ctl start -D ${PGDATA} -s -o -p ${PGPORT} -w -t 300 (code=exited, status=0/SUCCESS)
  Process: 7005 ExecStartPre=/usr/bin/postgresql-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/postgresql.service
           ├─7014 /usr/bin/postgres -D /var/lib/pgsql/data -p 5432
           ├─7015 postgres: logger process
           ├─7017 postgres: checkpointer process
           ├─7018 postgres: writer process
           ├─7019 postgres: wal writer process
           ├─7020 postgres: autovacuum launcher process
           └─7021 postgres: stats collector process

Jun 06 16:39:34 centos7cloud systemd[1]: Starting PostgreSQL database server...
Jun 06 16:39:35 centos7cloud systemd[1]: Started PostgreSQL database server.
$

Windows

Los instaladores de Windows de 32 y 64 bits están disponibles en el sitio oficial de PostgreSQL aquí.

  • Puede descargar el binario correspondiente según la versión y la arquitectura requeridas.

postgresql-descargar

  • Descargaremos la última versión disponible, que es la v13.3 para la plataforma Windows de 64 bits. Una vez que se complete la descarga, inicie el instalador haciendo doble clic en él.

Postgresql-instalar-lanzamiento

  • Haga clic en Siguiente para continuar.

ubicación de instalación de postgresql

  • Haga clic en Siguiente para continuar con la ruta predeterminada o especifique su ruta de instalación personalizada.

  • Puede mantener seleccionados los componentes predeterminados y hacer clic en Siguiente para continuar.

postgresql-install-datadir

  • A continuación, solicita la ubicación del directorio de datos; esto se puede mantener como predeterminado a menos que tenga un disco o directorio dedicado separado asignado. Haga clic en Siguiente para continuar.

postgresql-instalar-contraseña

  • Especifique una contraseña segura que se asignará a postgres usuario. Haga clic en Siguiente cuando termine.

puerto de instalación de postgresql

  • Puerto predeterminado 5432 debería ser bueno para la mayoría de los casos. Haga clic en Siguiente para ir a la página siguiente.

postgresql-install-locale

  • Seleccione la configuración regional para la base de datos y haga clic en Siguiente para continuar.

postgresql-install-confirm

  • Todas las configuraciones seleccionadas para el asistente de instalación se enumerarán para que las revise y confirme. Si necesita cambiar algo, vuelva atrás y cámbielo o haga clic en Siguiente para pasar a la página siguiente.

postgresql-install-confirm-1

  • El programa de instalación mostrará que está listo para continuar con la instalación. Cuando esté listo, haga clic en Siguiente para iniciar la instalación.

postgresql-instalar-progreso

  • Espere a que se complete la instalación. Se mostrará una confirmación para el mismo.

postgresql-install-complete

  • Una vez completado, puede desmarcar Stack Builder y haga clic en Finalizar para salir del asistente de instalación. Haga clic en el menú Inicio y busque SQL Shell (psql) y haga clic en su icono para abrir el psql cáscara.

menú de inicio de psql

  • SQL Shell (psql) opens up where you can interact with your <a href="https://geekflare.com/postgresql-monitoring-tools/">PostgreSQL instance after specifying the connection details</a>. All of the items can be selected as the default by simply pressing <code>Enter excepto la contraseña, donde debe ingresar la contraseña especificada para postgres usuario durante el asistente de instalación. Esto te llevará a postgres=# rápido.

psql-sql-shell-windows

Conéctese a PostgreSQL

A postgres el usuario se crea automáticamente después de la instalación, que tiene superadmin acceso a la instancia de base de datos. En Linux, como usuario privilegiado, puede cambiar a esta cuenta como:

$ sudo su - postgres

Una vez dentro, podemos reiniciar postgres contraseña de usuario como:

$ psql -c "alter user postgres with password '[email protected]'"

Y luego inicie el indicador de PostgreSQL con psqlcomo:

$ psql

Esto lo llevará al indicador de PostgreSQL:

$ psql
psql (12.7 (Ubuntu 12.7-0ubuntu0.20.04.1))
Type "help" for help.

postgres=#

En este mensaje, puede interactuar con la base de datos y realizar tareas de usuario o de administración de la base de datos. Como demostración, los pasos a continuación crean una base de datos y un usuario y luego asignan privilegios al nuevo usuario para trabajar en la nueva base de datos:

postgres=# CREATE DATABASE geekflaredb;
CREATE DATABASE
postgres=# CREATE USER geekuser WITH ENCRYPTED PASSWORD '[email protected]';
CREATE ROLE
postgres=# GRANT ALL PRIVILEGES ON DATABASE geekflaredb to geekuser;
GRANT
postgres=#

Luego podemos enumerar las bases de datos usando \l mando:

postgres=# \l
                               List of databases
    Name     |  Owner   | Encoding | Collate |  Ctype  |   Access privileges
-------------+----------+----------+---------+---------+-----------------------
 geekflaredb | postgres | UTF8     | C.UTF-8 | C.UTF-8 | =Tc/postgres         +
             |          |          |         |         | postgres=CTc/postgres+
             |          |          |         |         | geekuser=CTc/postgres
 postgres    | postgres | UTF8     | C.UTF-8 | C.UTF-8 |
 template0   | postgres | UTF8     | C.UTF-8 | C.UTF-8 | =c/postgres          +
             |          |          |         |         | postgres=CTc/postgres
 template1   | postgres | UTF8     | C.UTF-8 | C.UTF-8 | =c/postgres          +
             |          |          |         |         | postgres=CTc/postgres
(4 rows)

postgres=#

Ahora puede simplemente conectarse a una base de datos usando:

postgres=# \c geekflaredb
You are now connected to database "geekflaredb" as user "postgres".
geekflaredb=#

Resumen

PostgreSQL es uno de los más ampliamente adoptados bases de datos en el mundo empresarial debido a su robustez, conjunto de características y escalabilidad. Es fácil de aprender e intenta ser compatible con los estándares SQL.

Hay un tutoriales disponible para PostgreSQL en su sitio oficial.