PostgreSQL Install
PostgreSQL Install — hexacatslab1 (Oracle Linux 8)
STEP 1 — Instalar via Oracle Linux AppStream (sem internet necessária)
# Ver versões disponíveis:
dnf module list postgresql
# Habilitar o módulo (versão 15 recomendada):
dnf module enable -y postgresql:15
# Instalar:
dnf install -y postgresql-server postgresql-contrib
# Verificar versão:
postgres --version
Se preferir a versão mais recente via repo oficial do PostgreSQL:
dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm dnf module disable -y postgresql dnf install -y postgresql15-server postgresql15-contrib
STEP 2 — Inicializar o banco de dados
# Inicializar o cluster de dados:
postgresql-setup --initdb
# Verificar se criou os arquivos:
ls /var/lib/pgsql/data/
STEP 3 — Iniciar e habilitar o serviço
systemctl enable --now postgresql
# Verificar status:
systemctl status postgresql
STEP 4 — Configurar acesso
4.1 Definir senha do usuário postgres
# Entrar como usuário postgres:
sudo -u postgres psql
# Dentro do psql, definir senha:
ALTER USER postgres WITH PASSWORD 'SuaSenhaForte123!';
\q
4.2 Configurar autenticação — pg_hba.conf
vi /var/lib/pgsql/data/pg_hba.conf
Alterar as linhas de ident para md5 (ou scram-sha-256):
# TYPE DATABASE USER ADDRESS METHOD
# Local via socket:
local all all md5
# IPv4:
host all all 127.0.0.1/32 md5
# Rede interna (acesso remoto):
host all all 192.168.50.0/24 md5
4.3 Configurar escuta remota — postgresql.conf
vi /var/lib/pgsql/data/postgresql.conf
Localizar e alterar:
listen_addresses = '*' # era 'localhost'
port = 5432
4.4 Reiniciar para aplicar:
systemctl restart postgresql
systemctl status postgresql
STEP 5 — Firewall
firewall-cmd --permanent --add-service=postgresql
firewall-cmd --permanent --add-port=5432/tcp
firewall-cmd --reload
Se o firewalld estiver desativado, pule este step.
STEP 6 — Criar banco e usuário de aplicação
sudo -u postgres psql
-- Criar usuário:
CREATE USER appuser WITH PASSWORD 'AppSenha123!';
-- Criar banco:
CREATE DATABASE appdb OWNER appuser;
-- Conceder privilégios:
GRANT ALL PRIVILEGES ON DATABASE appdb TO appuser;
-- Verificar:
\l
\du
\q
STEP 7 — Testar conexão
# Local:
psql -U postgres -h 127.0.0.1 -p 5432 -c "SELECT version();"
# Remoto (do hexacatslab2):
psql -U appuser -h 192.168.50.12 -p 5432 -d appdb -c "SELECT now();"
# Verificar porta ouvindo:
ss -tlnp | grep 5432
Admin Cheatsheet
# Status do serviço
systemctl status postgresql
# Iniciar / Parar / Reiniciar
systemctl start postgresql
systemctl stop postgresql
systemctl restart postgresql
# Acessar o psql
sudo -u postgres psql
psql -U postgres -h 127.0.0.1
# Listar bancos
\l
# Listar usuários
\du
# Conectar em um banco
\c appdb
# Listar tabelas
\dt
# Sair do psql
\q
# Ver conexões ativas
SELECT pid, usename, application_name, client_addr, state FROM pg_stat_activity;
# Ver tamanho dos bancos
SELECT datname, pg_size_pretty(pg_database_size(datname)) FROM pg_database;
# Logs do PostgreSQL
journalctl -u postgresql -f
tail -f /var/lib/pgsql/data/log/postgresql-*.log
Arquivos importantes
| Arquivo | Caminho |
|---|---|
| Config principal | /var/lib/pgsql/data/postgresql.conf |
| Autenticação | /var/lib/pgsql/data/pg_hba.conf |
| Dados | /var/lib/pgsql/data/ |
| Logs | /var/lib/pgsql/data/log/ |
| Binários | /usr/bin/psql, /usr/bin/pg_dump |