PostgreSQL es un popular sistema de gestión de bases de datos relacionales de código abierto. Conocido por su confiabilidad, está ganando popularidad debido a su robustez, flexibilidad y rendimiento. PostgreSQL se utiliza para administrar bases de datos y numerosas aplicaciones web y analíticas. Al momento de escribir este artículo, PostgreSQL 13 es la última versión. Esta versión incluye mejoras significativas en el sistema de búsqueda e indexación que benefician a las grandes bases de datos.
En esta publicación, le mostraremos cómo instalar y asegurar PostgreSQL en Rocky Linux 8.
Requisitos
- Un servidor que ejecuta Rocky Linux 8 en Atlantic.Net Cloud Platform
- Una contraseña de root configurada en su servidor
Paso 1:crear el servidor en la nube de Atlantic.Net
Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo Rocky Linux 8 como sistema operativo con al menos 2 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.
Una vez que haya iniciado sesión en su servidor, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.
dnf update -y
Paso 2:agregue el repositorio de PostgreSQL 13
dnf module list postgresql
Debería ver que solo está disponible la versión 10 de PostgreSQL:
Rocky Linux 8 - AppStream Name Stream Profiles Summary postgresql 9.6 client, server [d] PostgreSQL server and client module postgresql 10 [d] client, server [d] PostgreSQL server and client module postgresql 12 client, server [d] PostgreSQL server and client module postgresql 13 client, server [d] PostgreSQL server and client module
Para instalar la última versión de PostgreSQL, deberá instalar el repositorio de PostgreSQL en su sistema.
Puedes instalarlo usando el siguiente comando:
dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Una vez que se crea el repositorio, puede continuar con el siguiente paso.
Paso 3:instale PostgreSQL 13 en Rocky Linux 8
Ahora, actualice su repositorio usando el siguiente comando:
dnf update -y
A continuación, deshabilite el repositorio de PostgreSQL predeterminado con el siguiente comando:
dnf -qy module disable postgresql
A continuación, instale la última versión de PostgreSQL ejecutando el siguiente comando:
dnf install postgresql13 postgresql13-server
Una vez que PostgreSQL 13 esté instalado, obtendrá el siguiente resultado:
Last metadata expiration check: 0:00:08 ago on Fri 22 Oct 2021 08:38:58 AM UTC. Dependencies resolved. =============================================================================================================================================== Package Architecture Version Repository Size =============================================================================================================================================== Installing: postgresql13 x86_64 13.4-1PGDG.rhel8 pgdg13 1.5 M postgresql13-server x86_64 13.4-1PGDG.rhel8 pgdg13 5.5 M Installing dependencies: postgresql13-libs x86_64 13.4-1PGDG.rhel8 pgdg13 414 k Transaction Summary =============================================================================================================================================== Install 3 Packages Total download size: 7.4 M Installed size: 31 M Is this ok [y/N]: y
A continuación, inicialice la base de datos PostgreSQL con el siguiente comando:
/usr/pgsql-13/bin/postgresql-13-setup initdb
Salida de muestra:
Initializing database ... OK
A continuación, inicie el servicio PostgreSQL y habilítelo para que se inicie al reiniciar el sistema con el siguiente comando:
systemctl start postgresql-13 systemctl enable postgresql-13
Puede verificar el estado de PostgreSQL con el siguiente comando:
systemctl status postgresql-13
Deberías obtener el siguiente resultado:
● postgresql-13.service - PostgreSQL 13 database server Loaded: loaded (/usr/lib/systemd/system/postgresql-13.service; disabled; vendor preset: disabled) Active: active (running) since Fri 2021-10-22 08:39:47 UTC; 7s ago Docs: https://www.postgresql.org/docs/13/static/ Process: 36412 ExecStartPre=/usr/pgsql-13/bin/postgresql-13-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS) Main PID: 36417 (postmaster) Tasks: 8 (limit: 11411) Memory: 16.8M CGroup: /system.slice/postgresql-13.service ├─36417 /usr/pgsql-13/bin/postmaster -D /var/lib/pgsql/13/data/ ├─36419 postgres: logger ├─36421 postgres: checkpointer ├─36422 postgres: background writer ├─36423 postgres: walwriter ├─36424 postgres: autovacuum launcher ├─36425 postgres: stats collector └─36426 postgres: logical replication launcher
ss -antpl | grep 5432
Obtendrá el siguiente resultado:
LISTEN 0 128 127.0.0.1:5432 0.0.0.0:* users:(("postmaster",pid=36417,fd=7)) LISTEN 0 128 [::1]:5432 [::]:* users:(("postmaster",pid=36417,fd=6))
Paso 4:establezca una contraseña para el usuario de Postgres
Para establecer una contraseña, inicie sesión en PostgreSQL con el siguiente comando:
su - postgres
A continuación, establezca una contraseña segura con el siguiente comando:
psql -c "alter user postgres with password 'securepassword'"
Luego, salga del shell de PostgreSQL usando el siguiente comando:
exit
Paso 5:cambiar el método de autenticación de PostgreSQL
Puede cambiarlo editando el archivo de configuración principal de PostgreSQL:
nano /var/lib/pgsql/13/data/pg_hba.conf
Busque la siguiente línea:
local all all peer
Y reemplácelo con la siguiente línea:
local all all scram-sha-256
Guarde y cierre el archivo, luego reinicie el servicio PostgreSQL para aplicar los cambios.
systemctl restart postgresql-13
Paso 6:crear una base de datos y un usuario en PostgreSQL
Primero, inicie sesión en el shell de PostgreSQL con el siguiente comando:
sudo -u postgres psql
Obtendrá el siguiente resultado:
could not change directory to "/root": Permission denied psql (13.4) Type "help" for help. postgres=#
Luego, cree un nuevo usuario de PostgreSQL llamado usuario1 usando el siguiente comando:
CREATE USER user1 WITH CREATEDB CREATEROLE PASSWORD 'passoword';
Para verificar los usuarios de PostgreSQL, ejecute:
\du
Obtendrá el siguiente resultado:
List of roles Role name | Attributes | Member of -----------+------------------------------------------------------------+----------- postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {} user1 | Create role, Create DB | {}
Para crear una nueva base de datos PostgreSQL llamada user1db, ejecute:
CREATE DATABASE user1db OWNER user1;
Para verificar las bases de datos de PostgreSQL, ejecute:
\l
Obtendrá el siguiente resultado:
List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------+-------------+----------------------- 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 user1db | user1 | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
Conclusión
¡Felicidades! Ha instalado y asegurado con éxito PostgreSQL en Rocky Linux 8. Por razones de seguridad, siempre se recomienda instalar la última versión de PostgreSQL en el entorno de producción. ¡Pruébelo con alojamiento VPS de Atlantic.Net!