• ¡Obtenga la seguridad de la aplicación de la manera correcta! Detectar, proteger, monitorear, acelerar y más ...
  • 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.

    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-server-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-install-launch

    • Haga clic en Siguiente para continuar.

    postgresql-install-location

    • 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-install-progress

    • 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) se abre donde puede interactuar con su instancia de PostgreSQL después de especificar los detalles de la conexión. Todos los elementos se pueden seleccionar como predeterminados simplemente presionando 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 una tutoriales disponible para PostgreSQL en su sitio oficial.