Cómo instalar una base de datos PostgreSQL en CentOS 7
Cómo instalar una base de datos PostgreSQL en CentOS 7
Objetivo
PostgreSQL, por su parte, es una de las bases de datos más conocidas en todo el mundo: su facilidad de uso y su enfoque open source son algunas de las ventajas que explican su enorme popularidad. Para más información sobre todas las posibilidades que ofrece la plataforma PostgreSQL, consulte la documentación oficial.
Con esta guía aprenderá a instalar una base de datos PostgreSQL en la distribución CentOS 7 Linux.
Requisitos
Para poder seguir los pasos que se indican en esta guía, necesitará disponer de una instancia Compute del universo Public Cloud de OVHcloud, un VPS o un servidor Bare Metal con Centos 7, y tener conocimientos básicos sobre el funcionamiento de una CLI. En esta guía hemos utilizado una instancia Compute de Public Cloud. Si necesita ayuda para instalar una instancia Public Cloud con CentOS 7, consulte nuestra guía «Crear y conectarse a una instancia de Public Cloud».
Instrucciones
Esta guía le permitirá instalar una base de datos PostgreSQL y, a continuación, creará una base de datos.
Instalación de la base de datos PostgreSQL
Durante la redacción de esta guía, la última versión publicada de PostgreSQL es la versión 14.x. Consulte todas las versiones disponibles en el apartado de descargas de la documentación oficial.
En primer lugar, compruebe que su sistema esté actualizado:
sudo yum update
Instale el repositorio RPM:
# Install the repository RPM: sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Deberá obtener un resultado similar al que se incluye a continuación:
$ sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm Modules complémentaires chargés : fastestmirror pgdg-redhat-repo-latest.noarch.rpm | 8.1 kB 00:00 Examen de /var/tmp/yum-root-4xEZ6S/pgdg-redhat-repo-latest.noarch.rpm : pgdg-redhat-repo-42.0-24.noarch Sélection de /var/tmp/yum-root-4xEZ6S/pgdg-redhat-repo-latest.noarch.rpm pour installation Résolution des dépendances --> Lancement de la transaction de test ---> Le paquet pgdg-redhat-repo.noarch 0:42.0-24 sera installé --> Résolution des dépendances terminée Dépendances résolues ================================================================================ Package Architecture Version Dépôt Taille ================================================================================ Installation : pgdg-redhat-repo noarch 42.0-24 /pgdg-redhat-repo-latest.noarch 11 k Résumé de la transaction ================================================================================ Installation 1 Paquet Taille totale : 11 k Taille d'installation : 11 k Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction Installation : pgdg-redhat-repo-42.0-24.noarch 1/1 Vérification : pgdg-redhat-repo-42.0-24.noarch 1/1 Installé : pgdg-redhat-repo.noarch 0:42.0-24 Terminé !
A continuación, instale PostgreSQL:
sudo yum install -y postgresql14-server
$ sudo yum install -y postgresql14-server Modules complémentaires chargés : fastestmirror Loading mirror speeds from cached hostfile * base: centos.mirrors.proxad.net * extras: centos.mirrors.proxad.net * updates: centos.mirrors.proxad.net pgdg-common/7/x86_64/signature | 198 B 00:00 Récupération de la clé à partir de file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG Importation de la clef GPG 0x442DF0F8 : ID utilisateur : « PostgreSQL RPM Building Project » Empreinte : 68c9 e2b9 1a37 d136 fe74 d176 1f16 d2e1 442d f0f8 Paquet : pgdg-redhat-repo-42.0-24.noarch (@/pgdg-redhat-repo-latest.noarch) Provient de : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG pgdg-common/7/x86_64/signature | 2.9 kB 00:00 !!! pgdg10/7/x86_64/signature | 198 B 00:00 Récupération de la clé à partir de file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG Importation de la clef GPG 0x442DF0F8 : ID utilisateur : « PostgreSQL RPM Building Project » Empreinte : 68c9 e2b9 1a37 d136 fe74 d176 1f16 d2e1 442d f0f8 Paquet : pgdg-redhat-repo-42.0-24.noarch (@/pgdg-redhat-repo-latest.noarch) Provient de : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG pgdg10/7/x86_64/signature | 3.6 kB 00:00 !!! pgdg11/7/x86_64/signature | 198 B 00:00 Récupération de la clé à partir de file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG Importation de la clef GPG 0x442DF0F8 : ID utilisateur : « PostgreSQL RPM Building Project » Empreinte : 68c9 e2b9 1a37 d136 fe74 d176 1f16 d2e1 442d f0f8 Paquet : pgdg-redhat-repo-42.0-24.noarch (@/pgdg-redhat-repo-latest.noarch) Provient de : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG pgdg11/7/x86_64/signature | 3,6 kB 00:00 !!! pgdg12/7/x86_64/signature | 198 B 00:00 Récupération de la clé à partir de file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG Importation de la clef GPG 0x442DF0F8 : ID utilisateur : « PostgreSQL RPM Building Project » Empreinte : 68c9 e2b9 1a37 d136 fe74 d176 1f16 d2e1 442d f0f8 Paquet : pgdg-redhat-repo-42.0-24.noarch (@/pgdg-redhat-repo-latest.noarch) Provient de : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG pgdg12/7/x86_64/signature | 3,6 kB 00:00 !!! pgdg13/7/x86_64/signature | 198 B 00:00 Récupération de la clé à partir de file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG Importation de la clef GPG 0x442DF0F8 : ID utilisateur : « PostgreSQL RPM Building Project » Empreinte : 68c9 e2b9 1a37 d136 fe74 d176 1f16 d2e1 442d f0f8 Paquet : pgdg-redhat-repo-42.0-24.noarch (@/pgdg-redhat-repo-latest.noarch) Provient de : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG pgdg13/7/x86_64/signature | 3,6 kB 00:00 !!! pgdg14/7/x86_64/signature | 198 B 00:00 Récupération de la clé à partir de file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG Importation de la clef GPG 0x442DF0F8 : ID utilisateur : « PostgreSQL RPM Building Project » Empreinte : 68c9 e2b9 1a37 d136 fe74 d176 1f16 d2e1 442d f0f8 Paquet : pgdg-redhat-repo-42.0-24.noarch (@/pgdg-redhat-repo-latest.noarch) Provient de : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG pgdg14/7/x86_64/signature | 3,6 kB 00:00 !!! (1/11): pgdg11/7/x86_64/group_gz | 245 B 00:00 (2/11): pgdg10/7/x86_64/group_gz | 245 B 00:00 (3/11): pgdg12/7/x86_64/group_gz | 245 B 00:00 (4/11): pgdg13/7/x86_64/group_gz | 246 B 00:00 (5/11): pgdg-common/7/x86_64/primary_db | 162 kB 00:00 (6/11): pgdg10/7/x86_64/primary_db | 371 kB 00:01 (7/11): pgdg14/7/x86_64/group_gz | 244 B 00:00 (8/11): pgdg11/7/x86_64/primary_db | 400 kB 00:01 (9/11): pgdg14/7/x86_64/primary_db | 98 kB 00:00 (10/11): pgdg12/7/x86_64/primary_db | 277 kB 00:00 (11/11): pgdg13/7/x86_64/primary_db | 181 kB 00:00 Résolution des dépendances --> Lancement de la transaction de test ---> Le paquet postgresql14-server.x86_64 0:14.2-1PGDG.rhel7 sera installé --> Traitement de la dépendance : postgresql14-libs(x86-64) = 14.2-1PGDG.rhel7 pour le paquet : postgresql14-server-14.2-1PGDG.rhel7.x86_64 --> Traitement de la dépendance : postgresql14(x86-64) = 14.2-1PGDG.rhel7 pour le paquet : postgresql14-server-14.2-1PGDG.rhel7.x86_64 --> Traitement de la dépendance : libpq.so.5()(64bit) pour le paquet : postgresql14-server-14.2-1PGDG.rhel7.x86_64 --> Traitement de la dépendance : libicuuc.so.50()(64bit) pour le paquet : postgresql14-server-14.2-1PGDG.rhel7.x86_64 --> Traitement de la dépendance : libicui18n.so.50()(64bit) pour le paquet : postgresql14-server-14.2-1PGDG.rhel7.x86_64 --> Lancement de la transaction de test ---> Le paquet libicu.x86_64 0:50.2-4.el7_7 sera installé ---> Le paquet postgresql14.x86_64 0:14.2-1PGDG.rhel7 sera installé ---> Le paquet postgresql14-libs.x86_64 0:14.2-1PGDG.rhel7 sera installé --> Résolution des dépendances terminée Dépendances résolues ================================================================================ Package Architecture Version Dépôt Taille ================================================================================ Installation : postgresql14-server x86_64 14.2-1PGDG.rhel7 pgdg14 5.5 M Installation pour dépendances : libicu x86_64 50.2-4.el7_7 base 6,9 M postgresql14 x86_64 14.2-1PGDG.rhel7 pgdg14 1,5 M postgresql14-libs x86_64 14.2-1PGDG.rhel7 pgdg14 267 k Résumé de la transaction ================================================================================ Installation 1 Paquet (+3 Paquets en dépendance) Taille totale des téléchargements : 14 M Taille d'installation : 55 M Downloading packages: (1/4): libicu-50.2-4.el7_7.x86_64.rpm | 6.9 MB 00:00 warning: /var/cache/yum/x86_64/7/pgdg14/packages/postgresql14-libs-14.2-1PGDG.rhel7.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 442df0f8: NOKEY La clé publique pour postgresql14-libs-14.2-1PGDG.rhel7.x86_64.rpm n'est pas installée (2/4): postgresql14-libs-14.2-1PGDG.rhel7.x86_64.rpm | 267 kB 00:01 (3/4): postgresql14-14.2-1PGDG.rhel7.x86_64.rpm | 1.5 MB 00:01 (4/4): postgresql14-server-14.2-1PGDG.rhel7.x86_64.rpm | 5.5 MB 00:00 -------------------------------------------------------------------------------- Total 7,5 MB/s | 14 MB 00:01 Récupération de la clé à partir de file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG Importation de la clef GPG 0x442DF0F8 : ID utilisateur : « PostgreSQL RPM Building Project » Empreinte : 68c9 e2b9 1a37 d136 fe74 d176 1f16 d2e1 442d f0f8 Paquet : pgdg-redhat-repo-42.0-24.noarch (@/pgdg-redhat-repo-latest.noarch) Provient de : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG Running transaction check Running transaction test Transaction test succeeded Running transaction Installation : postgresql14-libs-14.2-1PGDG.rhel7.x86_64 1/4 Installation : libicu-50.2-4.el7_7.x86_64 2/4 Installation : postgresql14-14.2-1PGDG.rhel7.x86_64 3/4 Installation : postgresql14-server-14.2-1PGDG.rhel7.x86_64 4/4 Vérification : libicu-50.2-4.el7_7.x86_64 1/4 Vérification : postgresql14-libs-14.2-1PGDG.rhel7.x86_64 2/4 Vérification : postgresql14-server-14.2-1PGDG.rhel7.x86_64 3/4 Vérification : postgresql14-14.2-1PGDG.rhel7.x86_64 4/4 Installé : postgresql14-server.x86_64 0:14.2-1PGDG.rhel7 Dépendances installées : libicu.x86_64 0:50.2-4.el7_7 postgresql14.x86_64 0:14.2-1PGDG.rhel7 postgresql14-libs.x86_64 0:14.2-1PGDG.rhel7 Terminé !
Inicializar la base de datos y activar el inicio automático:
sudo /usr/pgsql-14/bin/postgresql-14-setup initdb sudo systemctl enable postgresql-14 sudo systemctl start postgresql-14
A continuación, pruebe la instalación:
sudo su - postgres psql
Deberá obtener un resultado similar al que se incluye a continuación:
$ sudo su - postgres -bash-4.2$ psql psql (14,2) Type "help" for help. postgres=# exit -bash-4.2$ exit $
Tenga en cuenta que, por defecto, la instalación de PostgreSQL crea una cuenta postgre, que es una cuenta de superusuario para la base de datos. Tenga cuidado con su uso.
Añadir un usuario a PostgreSQL
Existen dos formas de añadir un usuario en PostgreSQL: con consultas SQL o con un comando en bash. Esta guía solo incluye la forma SQL porque es más exhaustiva. Para saber cómo utilizar el comando bash, consulte la documentación oficial. Debe utilizar la cuenta postgres predeterminada y la CLI psql para crear su nueva cuenta.
Debe crear un rol (una combinación de usuarios y derechos en el mundo PostgreSQL):
postgres=# CREATE USER foo WITH PASSWORD 'bar';
Deberá obtener un resultado similar al que se incluye a continuación:
postgres=# CREATE USER foo WITH PASSWORD 'bar'; CREATE ROLE postgres=#
Crear una base de datos
Cree una base de datos denominada ‘example’ con el usuario ‘foo’ como propietario:
postgres=# CREATE DATABASE example OWNER foo; CREAR BASE DE DATOS postgres=#
Para poder utilizar su nueva cuenta de usuario tiene que crear un usuario Linux equivalente (los privilegios de root son obligatorios para este tipo de comando):
$ sudo adduser foo
Deberá obtener un resultado similar al que se incluye a continuación:
$ sudo su - Dernière connexion : jeudi 12 mai 2022 à 09:42:40 UTC sur pts/0 # adduser foo # exit $
Pruebe la nueva cuenta:
sudo su - foo psql -d ejemplo
Deberá obtener un resultado similar al que se incluye a continuación:
$ sudo su - foo Dernière connexion : jeudi 12 mai 2022 à 10:09:42 UTC sur pts/0 $ psql -d example psql (14,2) Type "help" for help. example=>
Indique las bases de datos:
postgres=# \l
Deberá obtener un resultado similar al que se incluye a continuación:
postgres=# \l example=> \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------+-------------+----------------------- example | foo | UTF8 | en_US.UTF-8 | en_US.UTF-8 | postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgre + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgre + | | | | | postgres=CTc/postgres (4 rows)
Crear una tabla y utilizarla
Crear tablas y utilizarlas.
Para los siguientes comandos utilice el usuario foo creado con anterioridad.
example=> CREATE TABLE first_table (id INT PRIMARY KEY NOT NULL, column1 CHAR(50));
Deberá obtener un resultado similar al que se incluye a continuación:
example=> CREATE TABLE first_table (id INT PRIMARY KEY NOT NULL, column1 CHAR(50)); CREATE TABLE example=>
Ahora puede utilizar la first_table en las consultas SQL:
example=> INSERT INTO first_table (id, column1) VALUES (1, 'example'); example=> SELECT * FROM first_table;
Deberá obtener un resultado similar al que se incluye a continuación:
example=> INSERT INTO first_table (id, column1) VALUES (1, 'example'); INSERT 0 1 example=> SELECT * FROM first_table; id | column1 ----+---------------------------------------------------- 1 | example (1 row)
¡Enhorabuena! Ya ha instalado y configurado correctamente PostgreSQL en CentOS 7.