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
- Instalar o PostgreSQL nativamente no Windows / macOS / Linux
- Instalar com Docker (recomendado para ambientes de desenvolvimento)
- Instalar as ferramentas de gerenciamento GUI pgAdmin 4 e DBeaver
- Conectar e realizar operações básicas com a linha de comando psql
- Iniciar/parar o serviço e configurar parâmetros de conexão
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:
- Não sabia qual versão baixar
- Não sabia como verificar se a instalação foi bem-sucedida
- Ouviu dizer que também precisava de uma ferramenta GUI — pgAdmin ou DBeaver?
(2) Docker + DBeaver ao Resgate
Instalar o PostgreSQL com Docker é a maneira mais rápida — um comando, sem complicações específicas do sistema:
# 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
- Concluído em 2 minutos (vs 10–15 minutos para uma instalação nativa)
- Ambientes consistentes (configurações de dev/teste/prod são reutilizáveis)
- Desmontar e reconstruir com um comando — sem medo de quebrar coisas
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 |
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
# 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:
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 |
-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
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
# 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:
# Comando psql executado com sucesso
(3) Instalação no Linux
▶ Exemplo: Passos de Instalação no Ubuntu/Debian
# 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:
# 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 |
(2) Instalação do pgAdmin 4
▶ Exemplo: Conectar ao Banco de Dados com pgAdmin 4
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
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
# 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:
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
-- 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:
-- 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
# ============================================
# 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):
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 comdocker 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.confparatrust(sem senha), reinicie o PG, depois redefina comALTER USER postgres PASSWORD 'new_password'e volte a autenticação paramd5ouscram-sha-256.
P: A porta 5432 está ocupada — o que fazer? R: Use
lsof -i :5432(macOS/Linux) ounetstat -ano | findstr 5432(Windows) para encontrar o processo que a está usando. Você pode parar esse processo ou alterar a porta do PG (definaport = 5433nopostgresql.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
- Instalação via Docker é a maneira mais rápida de configurar um ambiente de desenvolvimento (um comando em 2 minutos)
- Windows / macOS / Linux têm opções de instalação nativa; nativo é recomendado para produção
- pgAdmin 4 é a ferramenta oficial PG, DBeaver é universal — instale ambos para uso complementar
- psql é a ferramenta interativa CLI; aprender
\l/\c/\dt/\d/\qé suficiente para começar - Parâmetros de conexão: host / porta / usuário / senha / banco de dados, também suporta conexões em formato URI
- Iniciar/parar serviço: Docker usa
docker start/stop, Linux usasystemctl, macOS usabrew services
📝 Exercícios
-
Básico (★): Instale o PostgreSQL 17 com Docker, conecte via psql, execute
SELECT version();e registre a saída. -
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. -
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_extensionse compare como as duas o exibem. Escreva qual ferramenta você prefere para este tipo de dado de sistema e por quê.