PostgreSQL: Como Instalar o PostgreSQL e Fazer Sua Primeira…

Última atualização: 2026-08-26

Instalar o PostgreSQL e fazer sua primeira conexão é o primeiro passo para aprendê-lo — este artigo coloca uma instância PG funcional em execução da maneira mais rápida possível.

1. O Que Você Vai Aprender


2. A História Real de um Novo Contratado

(1) A Dor: Colocar o Banco de Dados em Funcionamento em 30 Minutos

Bob acabou de entrar em uma empresa de e-commerce. Seu gerente pediu que ele configurasse um banco de dados PostgreSQL de desenvolvimento local em 30 minutos. Bob só tinha usado MySQL antes e era completamente novo no PG:

(2) Docker + DBeaver ao Resgate

Instalar o PostgreSQL com Docker é a maneira mais rápida — um comando, sem complicações específicas do sistema:

BASH
# Baixa e executa o PostgreSQL 17 no Docker
docker run --name my-postgres \
  -e POSTGRES_PASSWORD=mysecretpassword \
  -e POSTGRES_USER=bob \
  -e POSTGRES_DB=dev_shop \
  -p 5432:5432 \
  -d postgres:17

# Verifica se o contêiner está em execução
docker ps | grep my-postgres

(3) O Resultado


3. Métodos de Instalação Comparados

Método Vantagens Desvantagens Ideal para
Docker Rápido, limpo, reproduzível, desmontagem com um comando Requer Docker primeiro Ambientes de desenvolvimento (recomendado)
Instalador Windows Instalação GUI, registra automaticamente como serviço do sistema Desinstalação confusa, difícil gerenciamento de versões Desenvolvedores Windows
macOS Homebrew Instalação CLI, fácil troca de versão Requer familiaridade com Homebrew Desenvolvedores macOS
Gerenciador de pacotes Linux Integração nativa, melhor desempenho Comandos diferentes por distribuição Servidores Linux / dev
Serviço em nuvem Zero operações, backups automáticos Custos financeiros, latência de rede Produção
100%
graph TB
    START[Escolher método de instalação] --> Q1{Precisa de desempenho<br/>de produção?}
    Q1 -->|Sim| NAT[Instalação nativa<br/>Gerenciador de pacotes Linux]
    Q1 -->|Não| Q2{Já tem<br/>Docker?}
    Q2 -->|Sim| DOCKER[Instalação Docker<br/>2 minutos]
    Q2 -->|Não| Q3{Seu SO?}
    Q3 -->|Windows| WIN[Instalador Windows<br/>Download EDB]
    Q3 -->|macOS| BREW[Instalação Homebrew<br/>brew install postgresql@17]
    Q3 -->|Linux| APT[Instalação APT/YUM<br/>postgresql-17]

4. Instalação com Docker (Recomendado)

(1) Passos de Instalação

▶ Exemplo: Instalação do PostgreSQL 17 com Docker

BASH
# Passo 1: Baixa a imagem PostgreSQL 17
docker pull postgres:17

# Passo 2: Executa o contêiner com configurações personalizadas
docker run --name pg-dev \
  -e POSTGRES_USER=devuser \
  -e POSTGRES_PASSWORD=devpass123 \
  -e POSTGRES_DB=shopdb \
  -p 5432:5432 \
  -v pgdata:/var/lib/postgresql/data \
  -d postgres:17

# Passo 3: Verifica se o contêiner está em execução
docker ps

# Passo 4: Conecta via psql dentro do contêiner
docker exec -it pg-dev psql -U devuser -d shopdb

Output:

TEXT 📖 Somente leitura
psql (17.0)
Type "help" for help.

shopdb=>

(2) Comandos Comuns de Gerenciamento Docker

Ação Comando
Iniciar contêiner docker start pg-dev
Parar contêiner docker stop pg-dev
Reiniciar contêiner docker restart pg-dev
Remover contêiner docker rm -f pg-dev
Visualizar logs docker logs pg-dev
Entrar no psql docker exec -it pg-dev psql -U devuser -d shopdb
💡 Dica: -v pgdata:/var/lib/postgresql/data persiste os dados em um volume Docker, para que os dados sobrevivam mesmo após a remoção do contêiner.


5. Instalação Nativa

(1) Instalação no Windows

▶ Exemplo: Passos de Instalação no Windows

TEXT 📖 Somente leitura
1. Baixe o instalador de https://www.enterprisedb.com/downloads/postgres
2. Execute postgresql-17-windows-x64.exe
3. Selecione o diretório de instalação (padrão: C:\Program Files\PostgreSQL\17)
4. Defina a senha do superusuário (postgres)
5. Defina a porta (padrão: 5432)
6. Selecione a localidade (padrão: [Default locale])
7. Marque "Launch Stack Builder at exit" (opcional, para ferramentas adicionais)
8. Clique em Finish

Após a instalação, o PostgreSQL se registra e inicia automaticamente como um serviço do Windows.

(2) Instalação no macOS com Homebrew

▶ Exemplo: Passos de Instalação no macOS

BASH
# Instala o PostgreSQL 17 via Homebrew
brew install postgresql@17

# Inicia o serviço PostgreSQL
brew services start postgresql@17

# Conecta ao banco de dados padrão
psql postgres

# Verifica a versão
SELECT version();

Output:

TEXT 📖 Somente leitura
# Comando psql executado com sucesso

(3) Instalação no Linux

▶ Exemplo: Passos de Instalação no Ubuntu/Debian

BASH
# Adiciona o repositório APT oficial do PostgreSQL
sudo apt update
sudo apt install -y curl ca-certificates
sudo install -d /usr/share/postgresql-common/pgdg
sudo curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc \
  --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc

sudo sh -c 'echo "deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] \
  https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" \
  > /etc/apt/sources.list.d/pgdg.list'

# Instala o PostgreSQL 17
sudo apt update
sudo apt install -y postgresql-17

# Muda para o usuário postgres e conecta
sudo -u postgres psql

# Verifica a instalação
SELECT version();

Output:

TEXT 📖 Somente leitura
# Comando psql executado com sucesso
Distribuição Comando de instalação Gerenciamento de serviço
Ubuntu/Debian sudo apt install postgresql-17 sudo systemctl start/stop/restart postgresql
RHEL/CentOS sudo dnf install postgresql-server sudo systemctl start/stop/restart postgresql
Arch Linux sudo pacman -S postgresql sudo systemctl start/stop/restart postgresql

6. Ferramentas de Gerenciamento GUI

(1) pgAdmin 4 vs DBeaver

Dimensão pgAdmin 4 DBeaver
Posicionamento Ferramenta oficial de administração do PostgreSQL Ferramenta universal de administração de banco de dados
Bancos suportados Apenas PostgreSQL PostgreSQL + MySQL + SQLite + Oracle, mais de 20 no total
Custo Gratuito Community gratuito / Enterprise pago
Plataforma Navegador web + desktop Desktop Windows / macOS / Linux
Suporte a recursos PG Melhor (suporte nativo para todos os recursos PG) Bom (recursos comuns suportados)
Recomendado para Projetos específicos PG, recursos exclusivos PG Ambientes multi-banco, desenvolvimento/depuração diário
💡 Dica: Instale ambos — use o pgAdmin para operações específicas do PG (ex.: visualizar planos de execução, gerenciar extensões) e o DBeaver para desenvolvimento SQL diário e navegação de dados.

(2) Instalação do pgAdmin 4

▶ Exemplo: Conectar ao Banco de Dados com pgAdmin 4

TEXT 📖 Somente leitura
1. Baixe de https://www.pgadmin.org/download/
2. Instale e inicie o pgAdmin 4
3. Clique em "Add New Server"
4. Aba General: Name = "Local Dev"
5. Aba Connection:
   - Host: localhost (ou 127.0.0.1)
   - Port: 5432
   - Maintenance database: shopdb
   - Username: devuser
   - Password: devpass123
6. Clique em Save

(3) Instalação do DBeaver

▶ Exemplo: Conectar PostgreSQL com DBeaver

TEXT 📖 Somente leitura
1. Baixe de https://dbeaver.io/download/ (Community Edition)
2. Instale e inicie o DBeaver
3. Clique em "New Database Connection" (ícone de plugue)
4. Selecione PostgreSQL
5. Preencha as configurações de conexão:
   - Host: localhost
   - Port: 5432
   - Database: shopdb
   - Username: devuser
   - Password: devpass123
6. Clique em "Test Connection" (solicita o download do driver JDBC PG)
7. Clique em Finish

7. Conexão por Linha de Comando psql

O psql é o cliente de linha de comando integrado do PostgreSQL e a ferramenta interativa mais comum.

(1) Parâmetros de Conexão

Parâmetro Abreviação Padrão Descrição
--host -h localhost Endereço do servidor de banco de dados
--port -p 5432 Número da porta
--username -U Usuário atual do SO Nome de usuário da conexão
--dbname -d Igual ao nome de usuário Nome do banco de dados para conectar
--password -W nenhum Força solicitação de senha

▶ Exemplo: Conectar com psql

BASH
# Conecta ao PostgreSQL local
psql -h localhost -p 5432 -U devuser -d shopdb

# Ou use uma URI de conexão
psql "postgresql://devuser:devpass123@localhost:5432/shopdb"

# Ou via Docker
docker exec -it pg-dev psql -U devuser -d shopdb

Output:

TEXT 📖 Somente leitura
CONTAINER ID   IMAGE     STATUS    
abc123         latest    Up 2 hours

(2) Meta-Comandos Comuns do psql

Os meta-comandos do psql começam com \ e não precisam de ponto e vírgula:

Comando Função Exemplo
\l Listar todos os bancos de dados \l
\c dbname Alternar banco de dados \c shopdb
\dt Listar tabelas no banco de dados atual \dt
\d tablename Mostrar estrutura da tabela \d users
\du Listar todos os usuários/perfis \du
\df Listar todas as funções \df
\dx Listar extensões instaladas \dx
\conninfo Mostrar informações da conexão atual \conninfo
\q Sair do psql \q
\? Ajuda (todos os meta-comandos) \?

▶ Exemplo: Operações Básicas no psql

SQL
-- Verifica informações da conexão
\conninfo

-- Lista bancos de dados
\l

-- Cria uma tabela de teste
CREATE TABLE test_greeting (
    id SERIAL PRIMARY KEY,
    message TEXT NOT NULL,
    created_at TIMESTAMP DEFAULT NOW()
);

-- Insere dados
INSERT INTO test_greeting (message) VALUES ('Hello, PostgreSQL!');

-- Consulta dados
SELECT * FROM test_greeting;

-- Remove tabela de teste
DROP TABLE test_greeting;

Output:

TEXT 📖 Somente leitura
-- Saída \conninfo:
You are connected to database "shopdb" as user "devuser" on host "localhost" at port "5432".

-- Saída SELECT:
 id |      message       |         created_at
----+--------------------+----------------------------
  1 | Hello, PostgreSQL! | 2026-07-13 10:30:00.123456

8. Iniciando e Parando o Serviço

Ambiente Iniciar Parar Reiniciar Status
Docker docker start pg-dev docker stop pg-dev docker restart pg-dev docker ps
Linux (systemd) sudo systemctl start postgresql sudo systemctl stop postgresql sudo systemctl restart postgresql sudo systemctl status postgresql
macOS (Homebrew) brew services start postgresql@17 brew services stop postgresql@17 brew services restart postgresql@17 brew services list
Windows Serviço inicia automaticamente net stop postgresql-x64-17 net stop depois net start Verifique o Gerenciador de Serviços

9. Exemplo Completo: Da Instalação à Verificação

BASH
# ============================================
# Fluxo de trabalho completo: instalar, conectar, verificar
# Do zero à execução em 5 comandos
# ============================================

# 1. Inicia o PostgreSQL via Docker
docker run --name pg-dev \
  -e POSTGRES_USER=devuser \
  -e POSTGRES_PASSWORD=devpass123 \
  -e POSTGRES_DB=shopdb \
  -p 5432:5432 \
  -d postgres:17

# 2. Aguarda o contêiner ficar pronto (cerca de 5 segundos)
sleep 5

# 3. Conecta via psql
docker exec -it pg-dev psql -U devuser -d shopdb

# 4. Dentro do psql: executa consultas de verificação
# (Digite estes comandos no prompt do psql)

-- Mostra a versão do PostgreSQL
SELECT version();

-- Mostra a conexão atual
\conninfo

-- Lista extensões disponíveis
SELECT name, default_version FROM pg_available_extensions LIMIT 5;

-- Cria uma tabela de teste e insere dados
CREATE TABLE hello_pg (
    id SERIAL PRIMARY KEY,
    greeting TEXT,
    created_at TIMESTAMPTZ DEFAULT NOW()
);

INSERT INTO hello_pg (greeting) VALUES
    ('Hello from PostgreSQL!'),
    ('Docker install works!'),
    ('Ready to learn!');

-- Verifica
SELECT * FROM hello_pg;

-- Limpeza
DROP TABLE hello_pg;

-- Sai do psql
\q

# 5. Para o contêiner quando terminar
docker stop pg-dev

Output (excerpt):

TEXT 📖 Somente leitura
                                                     version
-----------------------------------------------------------------------------------------------------------------
 PostgreSQL 17.0 on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit

     name      | default_version
---------------+-----------------
 plpgsql       | 1.0
 uuid-ossp     | 1.1
 pg_trgm       | 1.6

 id |       greeting        |          created_at
----+-----------------------+-------------------------------
  1 | Hello from PostgreSQL! | 2026-07-13 10:30:00+00
  2 | Docker install works!  | 2026-07-13 10:30:00+00
  3 | Ready to learn!        | 2026-07-13 10:30:00+00

❓ Perguntas Frequentes

P: Qual a diferença entre PostgreSQL instalado via Docker e instalado nativamente? R: Funcionalmente idênticos. A única diferença é como ele é executado: Docker é isolado em um contêiner, nativo executa diretamente no SO. Para desenvolvimento, Docker é recomendado (limpo, reproduzível); para produção, nativo é recomendado (melhor desempenho, sem sobrecarga do Docker).

P: Como confirmo que o PostgreSQL está em execução após a instalação? R: A maneira mais simples é psql -U postgres -c "SELECT 1". Se retornar 1, o PG está em execução e acessível. No Docker, verifique o status do contêiner com docker ps | grep postgres.

P: Esqueci a senha do usuário postgres — e agora? R: Altere temporariamente o método de autenticação no pg_hba.conf para trust (sem senha), reinicie o PG, depois redefina com ALTER USER postgres PASSWORD 'new_password' e volte a autenticação para md5 ou scram-sha-256.

P: A porta 5432 está ocupada — o que fazer? R: Use lsof -i :5432 (macOS/Linux) ou netstat -ano | findstr 5432 (Windows) para encontrar o processo que a está usando. Você pode parar esse processo ou alterar a porta do PG (defina port = 5433 no postgresql.conf).

P: O pgAdmin abre muito lentamente — o que fazer? R: O pgAdmin 4 é uma aplicação web; o primeiro lançamento carrega um motor de navegador e pode levar de 10 a 30 segundos. Se continuar lento, experimente o modo Desktop ou mude para o DBeaver (inicialização mais rápida).

P: Por que recomendar o DBeaver em vez de apenas o pgAdmin? R: O DBeaver inicia mais rápido, suporta múltiplos bancos de dados e tem um editor SQL mais inteligente (autocompletar / formatação). O ponto forte do pgAdmin é o suporte mais completo a recursos PG (ex.: tarefas agendadas pgAgent, ferramenta de diagrama ER). Usar ambos é o melhor.


📖 Resumo


📝 Exercícios

  1. Básico (★): Instale o PostgreSQL 17 com Docker, conecte via psql, execute SELECT version(); e registre a saída.

  2. Intermediário (★★): Instale o DBeaver e crie uma conexão para seu PostgreSQL local. No DBeaver, crie uma tabela todo_items (colunas: id, title, completed, created_at), insira 3 linhas de teste e consulte-as.

  3. Desafio (★★★): Instale tanto o pgAdmin 4 quanto o DBeaver e conecte à mesma instância PostgreSQL. Em cada ferramenta, visualize o catálogo de sistema pg_available_extensions e compare como as duas o exibem. Escreva qual ferramenta você prefere para este tipo de dado de sistema e por quê.

Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%