Neste artigo, mostraremos como instalar o PostgreSQL 12 no Ubuntu 20.04/18.04/16.04. PostgreSQL é um sistema de banco de dados de código aberto e é poderoso como outros sistemas de banco de dados relacionais.
Você pode ver a página de lançamento do postgreSQL 12.
Etapas para instalar o PostgreSQL 12 no Ubuntu
Etapa 1:atualizar o sistema Ubuntu
É sempre recomendável atualizar o sistema antes de instalar o PostgreSQL.
sudo apt update
Etapa 2:instale o pacote necessário
sudo apt -y install vim bash-completion wget
Se o pacote já estiver instalado, você obterá a saída abaixo, pode ignorá-lo.
Saída de amostra:
root@PostgreSQL:~# sudo apt -y install vim bash-completion wgetReading listas de pacotes... DoneBuilding árvore de dependências Lendo informações de estado... Donebash-completion já é a versão mais recente (1:2.11-2ubuntu1).vim já é a versão mais recente (2:8.2.0716-3ubuntu2).wget já é a versão mais recente (1.20.3-1ubuntu1).wget configurado para instalado manualmente.O seguinte pacote foi instalado automaticamente e não é mais necessário:virtualbox-guest -utilsUse 'sudo apt autoremove' para removê-lo. 0 atualizado, 0 recém-instalado, 0 para remover e 212 não atualizado.root@PostgreSQL:~#
Etapa 3:adicionar repositório PostgreSQL 12
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" |sudo tee /etc/apt/sources.list.d/pgdg.listEtapa 4:Instale o PostgreSQL 12 no Ubuntu
sudo apt updatesudo apt -y install postgresql-12 postgresql-client-12
Saída de amostra:
root@PostgreSQL:~# sudo apt -y install postgresql-12 postgresql-client-12Lendo listas de pacotes... DoneBuilding árvore de dependências Lendo informações de estado... DoneO pacote a seguir foi instalado automaticamente e não é mais necessário:virtualbox- guest-utilsUse 'sudo apt autoremove' para removê-lo. Os seguintes pacotes adicionais serão instalados:libcommon-sense-perl libjson-perl libjson-xs-perl libpq5libtypes-serialiser-perl pgdg-keyring postgresql-client-commonpostgresql-common sysstat Pacotes sugeridos :postgresql-doc-12 isagOs seguintes novos pacotes serão instalados:libcommon-sense-perl libjson-perl libjson-xs-perl libpq5libtypes-serialiser-perl pgdg-keyring postgresql-12 postgresql-client-12postgresql-client-common postgresql-common sysstat0 atualizado, 11 recém-instalados, 0 para remover e 212 não atualizados.Precisa obter 17,5 MB de arquivos.Após esta operação, 59,4 MB de espaço em disco adicional serão usados.Get:1 http://apt.postgresql.org/ pub/repos/apt groovy-pgdg/main amd64 libpq 5 amd64 13.3-1.pgdg20.10+1 [177 kB]Get:2 http://us.archive.ubuntu.com/ubuntu groovy/main amd64 libcommon-sense-perl amd64 3.75-1build2 [20.5 kB]Get:3 http://us.archive.ubuntu.com/ubuntu groovy/main amd64 libjson-perl todos 4.02000-2 [80,9 kB]Get:4 http://apt.postgresql.org/pub/repos/apt groovy-pgdg /main amd64 pgdg-keyring all 2018.2 [10.7 kB]Get:5 http://apt.postgresql.org/pub/repos/apt groovy-pgdg/main amd64 postgresql-client-common all 226.pgdg20.10+1 [ 90,6 kB]Get:6 http://us.archive.ubuntu.com/ubuntu groovy/main amd64 libtypes-serialiser-perl all 1.0-1 [12,1 kB]Get:7 http://us.archive.ubuntu.com /ubuntu groovy/main amd64 libjson-xs-perl amd64 4.020-1build1 [83,7 kB]Get:8 http://apt.postgresql.org/pub/repos/apt groovy-pgdg/main amd64 postgresql-client-12 amd64 12.7 -1.pgdg20.10+1 [1.429 kB]Get:9 http://us.archive.ubuntu.com/ubuntu groovy/main amd64 sysstat amd64 12.4.0-1 [471 kB]Get:10 http:// apt.postgresql.org/pub/repos/apt groovy-pgdg/main amd64 postgresql-common todos 226.pgdg20.10+1 [2 46 kB]Get:11 http://apt.postgresql.org/pub/repos/apt groovy-pgdg/main amd64 postgresql-12 amd64 12.7-1.pgdg20.10+1 [14.9 MB]Buscou 17.5 MB em 15s ( 1.141 kB/s) Pré-configurando pacotes ...Selecionando o pacote não selecionado anteriormente libcommon-sense-perl.(Lendo banco de dados ... 192977 arquivos e diretórios atualmente instalados.)Preparando para descompactar .../00-libcommon-sense-perl_3.75 -1build2_amd64.deb ...Descompactando libcommon-sense-perl (3.75-1build2) ...Selecionando pacote não selecionado anteriormente libjson-perl.Preparing to unpack .../01-libjson-perl_4.02000-2_all.deb ... Descompactando libjson-perl (4.02000-2) ...Selecionando o pacote não selecionado anteriormente libtypes-serialiser-perl.Preparing to unpack .../02-libtypes-serialiser-perl_1.0-1_all.deb ...Descompactando libtypes-serialiser- perl (1.0-1) ...Selecionando o pacote não selecionado anteriormente libjson-xs-perl.Preparing to unpack .../03-libjson-xs-perl_4.020-1build1_amd64.deb ...Unpacking libjson-xs-perl (4.020 -1build1) ...Selecionando o pacote não selecionado anteriormente libpq5:amd64.P reparando para descompactar .../04-libpq5_13.3-1.pgdg20.10+1_amd64.deb ...Descompactando libpq5:amd64 (13.3-1.pgdg20.10+1) ...Selecionando pacote não selecionado anteriormente pgdg-keyring .Preparando para descompactar .../05-pgdg-keyring_2018.2_all.deb ...Descompactando pgdg-keyring (2018.2) ...Selecionando o pacote não selecionado postgresql-client-common.Preparing to unpack .../06-postgresql -client-common_226.pgdg20.10+1_all.deb ...Descompactando postgresql-client-common (226.pgdg20.10+1) ...Selecionando pacote não selecionado anteriormente postgresql-client-12.Preparing to unpack .../ 07-postgresql-client-12_12.7-1.pgdg20.10+1_amd64.deb ...Descompactando postgresql-client-12 (12.7-1.pgdg20.10+1) ...Selecionando o pacote não selecionado anteriormente postgresql-common. Preparando para descompactar .../08-postgresql-common_226.pgdg20.10+1_all.deb ...Adicionando 'desvio de /usr/bin/pg_config para /usr/bin/pg_config.libpq-dev por postgresql-common'Unpacking postgresql-common (226.pgdg20.10+1) ...Selecionando o pacote não selecionado anteriormente postgresql-12.Preparing to unpack .../09-postgresql-12_12.7-1.pgdg20.10+1_amd64.deb ...Descompactando postgresql-12 (12.7-1.pgdg20.10+1) ...Selecionando pacote não selecionado anteriormente sysstat.Preparing to unpack .../10-sysstat_12.4.0-1_amd64.deb ...Descompactando sysstat (12.4.0-1) ...Configurando pgdg-keyring (2018.2) ...Removendo a chave apt.postgresql.org de trusted. gpg:OKConfigurando libpq5:amd64 (13.3-1.pgdg20.10+1) ...Configurando libcommon-sense-perl (3.75-1build2) ...Configurando libtypes-serialiser-perl (1.0-1) .. .Configurando libjson-perl (4.02000-2) ...Configurando sysstat (12.4.0-1) ...Criando arquivo de configuração /etc/default/sysstat com novas alternativas de atualização de versão:usando /usr/bin/sar. sysstat para fornecer /usr/bin/sar (sar) no modo automáticoCriado symlink /etc/systemd/system/sysstat.service.wants/sysstat-collect.timer→ /lib/systemd/system/sysstat-collect.timer.Created symlink /etc/systemd/system/sysstat.service.wants/sysstat-summary.timer→ /lib/systemd/system/sysstat-summary.timer.Created symlink /etc/systemd/system/multi-user.target.wants/sys stat.service → /lib/systemd/system/sysstat.service.Configurando postgresql-client-common (226.pgdg20.10+1) ...Configurando libjson-xs-perl (4.020-1build1) ...Configurando up postgresql-client-12 (12.7-1.pgdg20.10+1) ...update-alternatives:usando /usr/share/postgresql/12/man/man1/psql.1.gz para fornecer /usr/share/ man/man1/psql.1.gz (psql.1.gz) no modo automáticoConfigurando postgresql-common (226.pgdg20.10+1) ...Adicionando usuário postgres ao grupo ssl-certCriando arquivo de configuração /etc/postgresql- common/createcluster.conf com nova versãoCriando dicionários PostgreSQL a partir de pacotes myspell/hunspell instalados...en_usRemovendo arquivos de dicionário obsoletos:Criado link simbólico /etc/systemd/system/multi-user.target.wants/postgresql.service → /lib/systemd/ system/postgresql.service.Setting up postgresql-12 (12.7-1.pgdg20.10+1) ...Criando novo cluster PostgreSQL 12/main .../usr/lib/postgresql/12/bin/initdb -D / var/lib/postgresql/12/main --auth-local peer --auth-host md5Os arquivos pertencentes a este sistema de banco de dados serão de propriedade de usuário "postgres".Este usuário também deve possuir o processo do servidor.O cluster de banco de dados será inicializado com a localidade "en_US.UTF-8".A codificação do banco de dados padrão foi definida como "UTF8".A configuração de pesquisa de texto padrão será configurado para "inglês". As somas de verificação da página de dados estão desabilitadas. corrigindo permissões no diretório existente /var/lib/postgresql/12/main ... okcriando subdiretórios ... okselecionando implementação de memória compartilhada dinâmica ... posixselecting default max_connections ... 100selecting default shared_buffers ... 128MB selecionando o fuso horário padrão ... America/New_York criando arquivos de configuração ... okrunning bootstrap script ... ok executando inicialização pós-bootstrap ... oksyncing data to disk ... okSuccess. Agora você pode iniciar o servidor de banco de dados usando:pg_ctlcluster 12 main startVer Cluster Port Status Owner Data directory Log file12 main 5432 down postgres /var/lib/postgresql/12/main /var/log/postgresql/postgresql-12-main.logupdate- alternativas:usando /usr/share/postgresql/12/man/man1/postmaster.1.gz para fornecer /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) no modo automáticoAcionadores de processamento para systemd ( 246.6-1ubuntu1) ...Processando gatilhos para man-db (2.9.3-2) ...Processando gatilhos para libc-bin (2.32-0ubuntu3) ...root@PostgreSQL:~#Etapa 5:verifique o status do serviço PostgreSQL
status do systemctl postgresql.service
Saída de amostra:
root@PostgreSQL:~# systemctl status postgresql.service ● postgresql.service - PostgreSQL RDBMSLoaded:carregado (/lib/systemd/system/postgresql.service; enabled; vendor p> Ativo:ativo (saído) desde Sun 2021- 05-16 09:17:56 EDT; 1min 56s ago PID principal:10932 (código=exited, status=0/SUCCESS)Tasks:0 (limit:4648)Memory:0BCGroup:/system.slice/postgresql.serviceMay 16 09:17:56 PostgreSQL systemd[1]:Iniciando PostgreSQL RDBMS... 16 de maio 09:17:56 PostgreSQL systemd[1]:PostgreSQL RDBMS.root@PostgreSQL concluído:~#Etapa 6:conectar o PostgreSQL
sudo su - postgresEtapa 7:redefinir a senha do PostgreSQL
Recomenda-se redefinir a senha para senha forte
psql -c "alterar postgres do usuário com a senha 'StrongAdminP@ssw0rd'"
Saída de amostra:
root@PostgreSQL:~# sudo su - postgrespostgres@PostgreSQL:~$ postgres@PostgreSQL:~$ psql -c "altere o usuário postgres com a senha 'StrongAdminP@ssw0rd'"ALTER ROLEpostgres@PostgreSQL:~$Etapa 8:criar banco de dados PostgreSQL
$ psql$ CREATE DATABASE firsttestdb;$ CREATE USER testuser1 COM SENHA ENCRIPTADA 'MyDBP@ss0rd';$ GRANT ALL PRIVILEGES ON DATABASE firsttestdb para testuser1;
Liste o banco de dados do PostgreSQL:
$\l
Como se conectar ao banco de dados PostgreSQL:
\c firsttestdb
Saída de amostra:
postgres=# \c firsttestdbVocê agora está conectado ao banco de dados "firsttestdb" como usuário "postgres".firsttestdb=#
Agora, veremos como permitir conexões remotas ao banco de dados PostgreSQL.
Etapa 9:permitir conexão remota ao banco de dados PostgreSQL
sudo nano /etc/postgresql/12/main/postgresql.conf
Descomente a linha "listen_addresses ='*' “
Salve o arquivo e reinicie o serviço PostgreSQL
sudo systemctl restart postgresqlEtapa 10:verifique o endereço de escuta
netstat -tunelp | grep 5432
Saída de amostra:
root@PostgreSQL:~# netstat -antple | grep 5432tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 135 253939 13850/postgres tcp6 0 0 :::5432 :::* LISTEN 135 253940 13850/postgres root@PostgreSQL:~#
No final do artigo, vimos como instalar o PostgreSQL 12 no Ubuntu 20.04/18.04/16.04.