¿Cómo instalar PostgreSQL en Ubuntu, CentOS y Windows?
Publicado: 2021-06-08PostgreSQL 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 del proyecto POSTGRES de 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.
Entonces 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 por defecto con su versión de Ubuntu y admitida durante su vida útil o 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 el repositorio apt de PostgreSQL , siga 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-12El 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.servicePara 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-servero puede usar DNF si usa CentOS 8.
$ sudo dnf install -y postgresql-serverEjecute 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.serviceO para usar los paquetes directamente desde los 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.rpmY 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-serverEl 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-13Puede 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. $Ventanas
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.


- 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.

- Haga clic en Siguiente para continuar.

- 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.

- 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.

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

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

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

- 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.

- 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.

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

- Una vez completado, puede desmarcar
Stack Buildery hacer clic en Finalizar para salir del asistente de instalación. Haga clic en el menú Inicio y busqueSQL Shell (psql)y haga clic en su icono para abrir el shellpsql.

-
SQL Shell (psql)abreSQL Shell (psql)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 presionandoEnterexcepto la contraseña, donde debe ingresar la contraseña especificada para el usuario depostgresdurante el asistente de instalación. Esto lo llevará al indicadorpostgres=#.

Conectarse a PostgreSQL
Un usuario de postgres se crea automáticamente después de la instalación, que tiene acceso de superadmin 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 restablecer la contraseña de usuario de postgres como:
$ psql -c "alter user postgres with password '[email protected]'" Y luego inicie el indicador de PostgreSQL con psql como:
$ psqlEsto 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 siguientes pasos 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 listar las bases de datos usando el comando \l :
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 una de las bases de datos ampliamente adoptadas 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 tutorial disponible para PostgreSQL en su sitio oficial.
