Skip to main content

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