Como Instalar PostgreSQL no Ubuntu 20.04 + Dicas de Uso para Gerenciar seu Banco de Dados

O PostgreSQL é um sistema de gerenciamento de banco de dados relacional (RDBMS) muito popular e de código aberto, conhecido por sua escalabilidade e eficiência no manuseio de grandes quantidades de dados.

Devido ao seu alto desempenho, o PostgreSQL é ideal para sites empresariais e aplicações complexas. Ele também oferece suporte vários tipos de dados e linguagens de programação, incluindo PHP e Python.

Neste tutorial, vamos explicar como instalar o PostgreSQL no Ubuntu 20.04 e posterior. Também abordaremos o processo de instalação do pgAdmin e soluções para problemas comuns do PostgreSQL. 

PostgreSQL é um sistema de gerenciamento de banco de dados relacional (RDBMS) popular por seu desempenho. Ao contrário de um DBMS padrão, ele organiza os dados em uma estrutura lógica para um acesso mais eficiente.
Altamente eficiente e capaz de lidar com muitas consultas, trata-se de uma excelente solução para grandes empresas. Além disso, ele é gratuito, de código aberto e compatível com vários tipos de dados.

Como Instalar o PostgreSQL no Ubuntu

Antes de prosseguir, certifique-se de que seu servidor privado virtual (VPS) esteja executando o Ubuntu 20.04 ou posterior. Caso contrário, siga nosso guia para alterar o sistema operacional no VPS da Hostinger.

1. Instalando PostgreSQL

A instalação do PostgreSQL envolve a execução de comandos Linux em sua máquina. Para um sistema local, execute-os diretamente via Terminal, o prompt de comando do Linux.

Para uma máquina remota como VPS, conecte-se usando um aplicativo SSH ou o Terminal. Os usuários da Hostinger podem encontrar suas credenciais de login da máquina remota navegando até Visão geral do VPS → Acesso SSH no hPanel.

dados de acesso ssh no vps pelo hpanel

Você pode instalar os pacotes PostgreSQL Ubuntu a partir do repositório local ou usando o gerenciador de pacotes APT. Recomendamos o APT, para garantir que você obtenha a versão mais recente do software.

Vale notar que nosso VPS também suporta outros bancos de dados. Por exemplo, você pode instalar o MongoDB, se preferir um DBMS NoSQL. 

Opção 1 – Instalação a partir do Repositório APT

O método mais popular para instalar o PostgreSQL no Ubuntu é a partir do repositório oficial, através do gerenciador de pacotes APT. Aqui estão os passos para fazer isso:

  1. Execute esses comandos para importar a chave do repositório oficial do PostgreSQL para o gerenciador de pacotes APT:
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 gpg -
  1. Atualize o APT para sincronizar todos os repositórios usando este comando:
sudo apt update
  1. Instale a versão mais recente do PostgreSQL com APT e privilégios sudo:
sudo apt-get -y install postgresql
  1. Para confirmar a instalação, execute este comando:
sudo -u postgres psql
  1. Digite a instrução de consulta da versão PostgreSQL:
SELECT version();

Dica

Para instalar uma versão específica, adicione o número no seu comando, por exemplo sudo apt-get -y install postgresql-12. Neste exemplo, o comando instalará a versão 12 do PostgreSQL.

Opção 2 – Instalação Usando o Repositório Local do Ubuntu

O método alternativo de instalação do PostgreSQL utiliza o repositório local do seu sistema Ubuntu. Confira o passo a passo:

  1. Execute este comando para atualizar o repositório do Ubuntu:
sudo apt-get update
  1. Verifique o  repositório PostgreSQL apt disponível usando este comando:
sudo apt show postgresql
  1. Execute este comando para instalar a versão mais recente disponível. No nosso caso, é a versão 12.15:
sudo apt install postgresql postgresql-contrib
  1. Para verificar se a instalação do PostgreSQL foi bem-sucedida, execute o seguinte:
sudo -u postgres psql
  1. Em seguida, execute este comando para verificar a versão atual do PostgreSQL:
SELECT version();

A linha de comando deve mostrar que a versão 12.15 do servidor PostgreSQL foi instalada com sucesso, como visto abaixo:

terminal exibindo versão do postgresql

2. Verifique o Status do PostgreSQL

Após instalar o PostgreSQL, verifique se ele está habilitado e ativo. Use o comando systemctl ou service para verificar o status do serviço:

sudo service postgresql status

sudo systemctl status postgresql

Se o PostgreSQL estiver habilitado, sua linha de comando exibirá active loaded, semelhante ao seguinte:

terminal exibindo status ativo do postgresql

Além do status do serviço, verifique se o PostgreSQL está pronto para aceitar uma conexão usando este comando:

sudo pg_isready

3. Conecte-se ao PostgreSQL

Durante a instalação, o PostgreSQL cria automaticamente a função padrão postgres  para fazer login no banco de dados. Para mudar para este usuário, execute o seguinte comando:

sudo su - postgres

Sua linha de comando agora deve começar com postgres. Para se conectar ao banco de dados PostgreSQL, use o shell PostgreSQL usando o seguinte:

sudo psql

O comando psql criará uma sessão no banco de dados padrão. Se o comando não for encontrado, instale manualmente o cliente PostgreSQL usando este comando:

sudo apt-get install postgresql-client

Para verificar o status da conexão, execute este comando usando o prompt do PostgreSQL:

\conninfo
função conninfo no postgresql

Para sair do prompt PostgreSQL e retornar ao usuário regular do sistema, use o comando exit . Da mesma forma, use \q para se desconectar da sessão interativa do banco de dados.

4. Alterar Senha do Usuário

Alterar a senha padrão da função postgres é essencial para melhorar a segurança do banco de dados. Para fazer isso, siga os passos abaixo:

  1. Ative o prompt do PostgreSQL usando este comando:
sudo -u postgres psql
  1. Execute esta declaração para alterar a senha da conta postgres. Não se esqueça de substituir NovaSenha pela sua senha desejada:
ALTER USER postgres PASSWORD 'NovaSenha';
  1. Verifique se a alteração foi aplicada com sucesso usando o seguinte comando:
\p
  1. Reinicie o PostgreSQL usando este comando:
sudo service postgresql restart
alterando senha no postgresql

5. Crie um Usuário no PostgreSQL

Para gerenciar o acesso ao banco de dados e garantir a organização adequada dos dados, você precisará de vários usuários do PostgreSQL. A maneira mais fácil de criar um é usar o modo interativo. Confira o passo a passo:

  1. Troque para o usuário postgres:
sudo su - postgres
  1. Execute este comando para criar um novo usuário:
createuser --interactive
  1. Insira o nome da nova conta PostgresQL. Para este tutorial, usaremos NovoUsuario.
  2. Para validar a nova conta, faça login no PostgreSQL com a conta postgres:
sudo -u postgres psql
  1. Verifique todos os usuários com o seguinte comando:
\du

Importante! Como parte das melhores práticas de segurança para o PostgreSQL, evite conceder ao novo perfil privilégio de superusuário, a menos que seja necessário.

Como mostrado na saída, o banco de dados cria com sucesso NovoUsuario.

lista de usuários no postgresql

6. Crie um Banco de Dados no PostgreSQL

O PostgreSQL assume que o usuário e o banco de dados terão o mesmo nome. Portanto, se você criar um usuário NovoUsuario, o PostgreSQL acessará um banco de dados com o mesmo nome.

Importante! O PostgreSQL usa informações do Linux para autenticação. No exemplo anterior, você precisa de um usuário chamado NovoUsuario.

Aqui estão as etapas de configuração do banco de dados PostgreSQL:

  1. Execute o seguinte para mudar para o usuário postgres e criar um novo banco de dados:
sudo -u postgres createdb NovoUsuario
  1. Para fazer login no novo banco de dados, crie uma conta de usuário Linux com o mesmo nome. Como o nome de usuário contém letras maiúsculas, adicione a opção –force-badname.
sudo adduser NovoUsuario --force-badname
  1. Entre no prompt interativo do PostgreSQL usando a nova conta de usuário:
sudo -u NovoUsuario psql
  1. Confirme a conexão usando este comando:
\conninfo
criar banco de dados no postgresql

O usuário deve agora se conectar ao novo banco de dados e ser capaz de criar uma nova tabela. Por exemplo, insira o seguinte para criar uma tabela de dados do comprador:

CREATE TABLE compradores(usr_id INT PRIMARY KEY, usr_name VARCHAR(240) NOT NULL, usr_location VARCHAR(240) NOT NULL);

Ao criar uma tabela de banco de dados, considere as seis restrições do PostgreSQL:

  • PRIMARY KEY – indica que uma coluna pode ser o identificador único de uma linha.
  • FOREIGN KEY – especifica que os valores em uma coluna devem ser os mesmos que os da linha de outra tabela.
  • NOT NULL – garante que o valor de uma coluna não esteja vazio.
  • CHECK – define o valor de uma coluna de forma que ele deve satisfazer uma expressão booleana, que é “verdadeiro” ou “falso”.
  • UNIQUE – garante que os valores em uma coluna sejam únicos entre todas as linhas.
  • EXCLUSION – impede que os valores em duas linhas se sobreponham quando comparados.

Para adicionar valores à sua tabela, use a seguinte declaração. Não se esqueça de substituir os espaços reservados pelo valor apropriado e ajustar o número de linhas de acordo:

INSERT INTO nomedatabela (coluna1, coluna2, coluna3) VALUES (linha1, linha2, linha3);

Para mostrar a tabela, insira a seguinte declaração:

SELECT * FROM nomedatabela

7. Configure o Servidor PostgreSQL

Configure seu servidor PostgreSQL para permitir que outros sistemas acessem o banco de dados remotamente. Para fazer isso, deixe o servidor capturar todos os endereços IP que estão editando o arquivo de configuração.

Antes de prosseguir, use o comando exit  para sair do shell PostgreSQL e retornar como o usuário regular do sistema. Depois, siga estes passos:

  1. Abra o arquivo de configuração usando um editor de texto. Substitua vim se você usar outro editor e altere o diretório de acordo:
vim /etc/postgresql/14/main/postgresql.conf
  1. Encontre a   linha. listen_addresses.
  2. Remova o símbolo e altere o valor para um asterisco. Assim:
listen_addresses = '*'
  1. Use o comando :wq para salvar as alterações e sair do vim.
função listen_adresses no postgresql
  1. Defina a política de acesso para autenticar a conexão do cliente ao seu servidor PostgreSQL. Para fazer isso, abra o arquivo pg_hba.conf no mesmo diretório usando o vim. Ficará assim:
vim /etc/postgresql/14/main/pg_hba.conf
  1. Adicione uma nova regra no final do arquivo usando esta sintaxe:
connection database user ip_address encryption
  1. Por exemplo, vamos permitir todas as conexões TCP/IP de todos os usuários para todos os bancos de dados PostgreSQL. Esses usuários podem usar qualquer endereço IP com uma senha criptografada em MD5. A regra é a seguinte:
host all all 0.0.0.0/0 md5
  1. Reinicie o serviço PostgreSQL para aplicar as alterações.

8. Configure uma Conexão Remota com o Banco de Dados

Após configurar o banco de dados, configure o acesso remoto ao PostgreSQL usando o comando psql. Para fazer isso, use esta sintaxe de comando na máquina cliente:

psql -h endereço_ip -p porta -d banco_de_dados -U nome_de_usuário

Por exemplo, execute este comando para se conectar ao banco de dados NovoUsuario hospedado em um VPS com o endereço IP 185.185.185.185  usando a conta NovoUsuario:

psql -h 185.185.185.185 -p 5432 -d NovoUsuario -U NovoUsuario

Lembre-se de que a porta padrão do PostgreSQL é 5423. Para verificar se a conexão foi bem-sucedida, execute este comando:

\conninfo

Uma vez conectado, você pode enviar consultas ao banco de dados para recuperar dados. Para habilitar o acesso remoto ao PostgreSQL em seu aplicativo, instale um driver de banco de dados e importe o módulo para o seu código.

Para este tutorial, mostraremos como fazer isso em um aplicativo Python hospedado em um VPS Ubuntu 20.04. Após se conectar via SSH, siga estas etapas:

  1. Instale o gerenciador de pacotes pip usando o comando abaixo. Se você já tem o gerenciador instalado, pule esta etapa.
sudo apt-get install python-pip
  1. Baixe e instale o driver de banco de dados psycopg2 usando o pip:
pip install psycopg2-binary
  1. Adicione a seguinte linha ao código do seu aplicativo para importar o módulo e estabelecer uma conexão com o banco de dados PostgreSQL. Lembre-se de alterar o valor de acordo:
import psycopg2
# Conecte seu aplicativo ao banco de dados remoto.
conn = psycopg2.connect(host="182.182.182.182", port="5432", dbname="NovoUsuarioTeste", user="NovoUsuarioTeste", password="SenhaDoUsuario")
# Abra um cursor para operações de banco de dados
cur = conn.cursor()
# Execute uma consulta. Substitua a tabela pela sua própria. 
cur.execute("SELECT * FROM table")
# Recuperar dados
records = cur.fetchall()

9. Instale o pgAdmin

Instale o  pgAdmin, uma interface gráfica baseada na web, para simplificar suas tarefas de gerenciamento de banco de dados PostgreSQL. Vamos usar o gerenciador de pacotes APT para instalá-lo:

  1. Execute esses comandos individualmente para adicionar o repositório oficial do pgAdmin:
curl -fsSL 
https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/pgadmin.gpg

sudo sh -c 'echo "deb 
https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list'
  1. Atualize as listas de pacotes para sincronizar o repositório.
sudo apt update
  1. Execute o seguinte comando para instalar o pgAdmin:
sudo apt install pgadmin4
  1. Após a configuração da GUI ser concluída, inicie a configuração primária do pgAdmin com este comando:
sudo /usr/pgadmin4/bin/setup-web.sh
  1. Insira seu endereço de email e senha. Ficará assim:
configurando pgadmin no postgresql

Para acessar a interface web do pgAdmin, insira o seguinte na barra de endereços do seu navegador:

185.185.185.185/pgadmin4
tela de login do pgadmin

Substitua o endereço IP acima pelo do seu VPS. Em seguida, insira seu endereço de e-mail e senha. Clique em Entrarpara acessar o painel principal do pgAdmin.

Para conectar o PostgreSQL, selecione Adicionar Novo Servidor e prossiga com o processo de configuração.

adicionando novo servidor no pgadmin

Solução de Problemas na Instalação do PostgreSQL

Nesta seção, vamos explorar problemas comuns relacionados à instalação do PostgreSQL e suas soluções.

1. Impossível Conectar ao Servidor PostgreSQL

Primeiro, você deve verificar se o sistema do cliente está devidamente conectado à internet. Se a conexão com a internet não for o problema, outras causas comuns para esse erro incluem um banco de dados inativo ou permissão de arquivo mal configurada.

Verifique o status do PostgreSQL e certifique-se de que ele está carregado e ativo. Caso contrário, reinicie-o usando o seguinte comando:

sudo systemctl restart postgresql

Se isso não funcionar, verifique se as permissões do diretório e dos arquivos PostgreSQL estão definidas para 0700 e 0600. Para fazer isso, use o seguinte comando:

ls /var/lib/postgresql/main

Então, use o comando chmod para alterar suas permissões.

2. Problemas de Conexão PostgreSQL com Host Remoto

Uma regra de conexão mal configurada pode causar problemas no host remoto que impedem o acesso ao servidor PostgreSQL. Para resolver isso, abra seu arquivo pg_hba.conf e adicione a regra de acesso de todos os endereços IP dos clientes:

host all all 0.0.0.0/0 md5

Então, verifique o valor de listen_address  no seu arquivo de configuração postgres.conf . Certifique-se de que ele tenha um asterisco para garantir que o PostgreSQL possa ouvir todos os endereços IP.

Se isso não funcionar, verifique se o seu firewall está fechando a porta de escuta do PostgreSQL. Para o servidor Ubuntu, execute o comando ufw :

sudo ufw status verbose

Se a conexão de/para a porta 5432 estiver desativada, abra-a usando o seguinte comando:

sudo ufw allow 5432/tcp

Saiba mais sobre o Firewall Ubuntu

Confira esse artigo para aprender como configurar o firewall do Ubuntu usando o Uncomplicated Firewall (UFW).

3. Problemas de Login no pgAdmin

Problemas de login no pgAdmin podem ocorrer devido a um erro de conexão com o banco de dados. Se o erro for relacionado à rede, tente as soluções anteriores e reinstale o pgAdmin.

Se o problema estiver relacionado às credenciais de login da conta do usuário, entre na sessão psql e redefina a senha usando esta declaração:

ALTER USER nome_de_usuario WITH PASSWORD 'nova_senha';

Você também pode ter problemas de login se o usuário não tiver o privilégio de  LOGIN. Para concedê-lo, use a seguinte declaração:

ALTER USER nome_de_usuario WITH LOGIN;

4. Conflito de Versão do PostgreSQL

Conflitos de versão ocorrem quando o PostgreSQL é incompatível com o banco de dados ou outras aplicações. A causa mais comum para isso é não atualizar o PostgreSQL, resultando em uma incompatibilidade de versão.

Para resolver isso, reinstale ou atualize o PostgreSQL a partir do repositório oficial APT. Além disso, atualize todos os aplicativos de terceiros, pois eles podem estar desatualizados.

Recomendamos testar a versão mais recente em um ambiente de desenvolvimento para evitar problemas futuros no servidor ao vivo.

5. Incapaz de Criar Usuário ou Banco de Dados PostgreSQL

Uma sintaxe de comando incorreta frequentemente aciona erros de criação de usuário e banco de dados do PostgreSQL. Para corrigir, certifique-se de que seu comando termine com um ponto e vírgula (;).

Além disso, você deve executar o comando usando o usuário postgres e a linha de comando psql. Para fazer isso, execute este comando:

sudo -u postgres psql

Se o seu Terminal mostrar o seguinte, você deve ser capaz de criar um usuário e um banco de dados.

postgres=#

Conclusão

O PostgreSQL é um sistema de gerenciamento de banco de dados de código aberto, gerenciado pela sua própria comunidade. Ele usa uma estrutura lógica para armazenar eficientemente grandes quantidades de dados e simplificar o acesso.

Neste tutorial, explicamos os passos para instalar o PostgreSQL no Ubuntu 20.04 através do prompt de comando do Linux. Aqui está o resumo do processo:

  1. Instale o PostgreSQL a partir do repositório oficial usando o APT.
  2. Execute systemctl status para verificar se o Postgresql está ativo.
  3. Conecte-se à conta PostgreSQL usando sudo su – postgres.
  4. Altere a senha da conta de administrador padrão para aumentar a segurança.
  5. Crie um novo usuário PostgreSQL para gerenciar seus bancos de dados.
  6. Crie um novo banco de dados usando o comando createdb .
  7. Configure o servidor PostgreSQL configurando suas regras de conexão.
  8. Configure uma conexão com seu banco de dados PostgreSQL remoto.
  9. Instale o pgAdmin para acessar uma interface gráfica do usuário.

Para evitar problemas, certifique-se de que as regras de conexão e as credenciais de login do pgAdmin estão configuradas corretamente. Além disso, instale a versão mais recente do RDBMS via APT para evitar problemas de incompatibilidade. Boa sorte!

Como Instalar PostgreSQL Ubuntu: Perguntas Frequentes

Nesta seção, responderemos a várias perguntas frequentes sobre a instalação do PostgreSQL em um servidor Ubuntu.

Onde o Postgres é Instalado no Ubuntu? 

No Ubuntu, os principais arquivos do servidor PostgreSQL estão no diretório /usr/lib/postgresql/<version/bin/postgres . Todos os clusters de banco de dados são armazenados no diretório /var/lib/postgresql/main. Enquanto isso, as configurações do PostgreSQL estão no arquivo /etc/postgresql/main/postgresql.conf .

Como Sei se o PostgreSQL Está Instalado no Ubuntu?

A maneira mais fácil de verificar se o PostgreSQL está instalado em um servidor Ubuntu é executar sudo -u postgres psqlou which psql. O terminal deve exibir o caminho de instalação, se o software estiver instalado.

Devo Usar PostgreSQL 13 ou 14?

O PostgreSQL 14 tem uma escalabilidade de conexão aprimorada. Isso torna esta versão mais adequada para grandes empresas com muitas conexões de banco de dados. Recomendamos que você tenha sempre a versão mais recente para ter acesso às melhores funcionalidades, melhorias e correções.

Author
O autor

Bruno Santana

Jornalista formado pela Universidade Federal da Bahia, além de colaborador eventual do site MacMagazine e da editoria de cultura do Jornal A Tarde, de Salvador. Fascinado por tecnologia desde criança, criei meu primeiro blog no Wordpress aos 13 anos e nunca mais parei. Nas horas vagas, gosto de ir ao cinema e fazer experimentos na cozinha.