Como instalar uma base de dados PostgreSQL em Centos 7?
Instalar uma base de dados PostgreSQL em Centos 7
Objetivo
O PostgreSQL é uma das bases de dados mais famosas do mundo. A sua simplicidade de utilização e a abordagem Open Source são dois fatores importantes para a sua ampla adoção. Para obter mais informações e saber mais sobre as capacidades do PostgreSQL, consulte a documentação oficial.
Neste tutorial, descobrirá como instalar uma base de dados PostgreSQL na distribuição Linux Centos 7.
Requisitos
Este tutorial parte do princípio de que dispõe de um Centos 7, a correr numa instância de computação OVHcloud, por exemplo. Alguns conhecimentos básicos sobre o seu funcionamento são também necessários. Se não tiver o Centos 7 em execução, siga este guia para utilizar uma Instância de Computação OVHcloud.
Instruções
Neste tutorial, numa primeira fase, irá instalar uma base de dados PostgreSQL e, em seguida, irá criar a sua própria base de dados com base na primeira.
Instalação da Base de Dados PostgreSQL
Aquando da redação deste tutorial, a última versão de PostgreSQL é a 14.x. Consulte a secção de download da documentação oficial no caso de versões mais antigas ou mais recentes.
Primeiro, certifique-se de que o sistema está atualizado:
sudo yum update
Instale o repositório 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
O resultado deve ser o seguinte:
$ 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é !
Agora, instale o 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é !
Inicie a base de dados e ative o arranque automático:
sudo /usr/pgsql-14/bin/postgresql-14-setup initdb sudo systemctl enable postgresql-14 sudo systemctl start postgresql-14
Em seguida, pode testar a sua nova instalação:
sudo su - postgres psql
O resultado deve ser o seguinte:
$ sudo su - postgres -bash-4.2$ psql psql (14.2) Type "help" for help. postgres=# exit -bash-4.2$ exit $
Tenha em mente que, por defeito, a instalação de PostgreSQL cria uma conta postgres. Trata-se de uma conta de superutilizador para a base de dados. Tenha cuidado quando a utilizar. Nos próximos capítulos, ser-lhe-á explicado como criar utilizadores padrão.
Adicionar um utilizador no PostgreSQL
Existem duas formas de adicionar um utilizador no PostgreSQL: com pedidos SQL ou recorrendo a um comando em bash. Neste tutorial, iremos debruçar-nos apenas sobre o método, por ser mais completo. Para saber como utilizar o modo de comando, consulte a documentação oficial. Para criar a sua nova conta, deverá utilizar a conta predefinida postgres e o CLIpsql (veja primeiro como se ligar ao psql).
Deve começar por criar um papel (uma espécie de combinação de utilizadores e direitos no mundo PostgreSQL):
postgres=# CREATE USER foo WITH PASSWORD 'bar';
O resultado deve ser o seguinte:
postgres=# CREATE USER foo WITH PASSWORD 'bar'; CREATE ROLE postgres=#
Criar uma base de dados
Em seguida, crie uma base de dados «exemplo» cujo proprietário é o utilizador «foo»:
postgres=# CREATE DATABASE example OWNER foo; CREATE DATABASE postgres=#
Em seguida, para utilizar o seu novo utilizador, deve criar um utilizador linux equivalente (os privilégios root são obrigatórios para este tipo de comando):
$ sudo adduser foo
O resultado deve ser o seguinte:
$ sudo su - Dernière connexion : jeudi 12 mai 2022 à 09:42:40 UTC sur pts/0 # adduser foo # exit $
Agora, pode testar a sua nova conta:
sudo su - foo psql -d example
O resultado deve ser o seguinte:
$ 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=>
Pode elaborar uma lista das suas bases de dados para verificar a criação das mesmas:
postgres=# \l
O resultado deve ser o seguinte:
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/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)
Criar uma tabela e utilizá-la
Nesta fase, pode criar tabelas e utilizá-las.
Para os comandos seguintes, recorra ao utilizador foo que criou anteriormente.
example=> CREATE TABLE first_table (id INT PRIMARY KEY NOT NULL, column1 CHAR(50));
O resultado deve ser o seguinte:
example=> CREATE TABLE first_table (id INT PRIMARY KEY NOT NULL, column1 CHAR(50)); CREATE TABLE example=>
Nesta altura, pode utilizar o comando first_table nos pedidos SQL:
example=> INSERT INTO first_table (id, column1) VALUES (1, 'example'); example=> SELECT * FROM first_table;
O resultado deve ser o seguinte:
example=> INSERT INTO first_table (id, column1) VALUES (1, 'example'); INSERT 0 1 example=> SELECT * FROM first_table; id | column1 ----+---------------------------------------------------- 1 | example (1 row)
Já está! Instalou e configurou com sucesso uma base de dados PostgreSQL em Centos 7.
Ir mais longe
Consulte as ofertas de bases de dados geridas PostgreSQL e de instâncias Public Cloud na OVHcloud.