# MANUAL TÉCNICO - INSTALAÇÃO E CONFIGURAÇÃO BASE DE BANCOS DE DADOS

**Código:** ITGINF 0020/26 | **Classificação:** RESTRITO
**Responsável:** João Pedro Toledo Gonçalves | **Data:** {{DATA_ATUAL}}

## 1. HISTÓRICO DE REVISÃO

| Data | Versão | Descrição | Autor |
| :--- | :--- | :--- | :--- |
| {{DATA_ATUAL}} | 1.0 | Criação Inicial | João Pedro Toledo Gonçalves |

## 2. OBJETIVO
Padronizar a instalação, caminhos de configuração e liberação de acesso externo para PostgreSQL, MySQL e Redis em servidores Linux.

## 3. PRÉ-REQUISITOS
*   [ ] Servidor Linux (Debian/RHEL) atualizado.
*   [ ] Acesso root/sudo.

---

## 4. POSTGRESQL

**Instalação:**
*   **Debian/Ubuntu:** `sudo apt install postgresql postgresql-contrib`
*   **RHEL/CentOS:** `sudo dnf install postgresql-server postgresql-contrib && sudo postgresql-setup --initdb`

**Arquivos de Configuração (Padrão Debian):**
*   **Principal:** `/etc/postgresql/14/main/postgresql.conf` (Versão varia).
*   **Acesso (Quem conecta):** `/etc/postgresql/14/main/pg_hba.conf`

**Liberar Acesso Externo:**
1.  No `postgresql.conf`, mude `listen_addresses = 'localhost'` para `listen_addresses = '*'`.
2.  No `pg_hba.conf`, adicione no final:
    ```
    # TYPE  DATABASE        USER            ADDRESS                 METHOD
    host    all             all             0.0.0.0/0               scram-sha-256
    ```
3.  Reinicie: `sudo systemctl restart postgresql`.

---

## 5. MYSQL / MARIADB

**Instalação:**
*   **Debian/Ubuntu:** `sudo apt install mariadb-server` (ou `mysql-server`).
*   **RHEL/CentOS:** `sudo dnf install mariadb-server`

**Arquivos de Configuração:**
*   **Principal:** `/etc/mysql/mysql.conf.d/mysqld.cnf` (ou `/etc/my.cnf`).

**Liberar Acesso Externo:**
1.  Edite o arquivo de config.
2.  Localize `bind-address` e mude de `127.0.0.1` para `0.0.0.0`.
3.  Reinicie: `sudo systemctl restart mariadb`.

**Secure Installation (Obrigatório):**
Rode `sudo mysql_secure_installation` logo após instalar para definir senha de root e remover usuários anônimos.

---

## 6. REDIS

**Instalação:**
*   **Todas as distros:** `sudo apt install redis-server` (ou `dnf install redis`).

**Arquivos de Configuração:**
*   **Principal:** `/etc/redis/redis.conf`.

**Liberar Acesso Externo (CUIDADO):**
> ⚠️ **ALERTA:** O Redis não tem autenticação forte por padrão. NUNCA exponha para a internet.

1.  Edite `/etc/redis/redis.conf`.
2.  Mude `bind 127.0.0.1 ::1` para `bind 0.0.0.0`.
3.  **OBRIGATÓRIO:** Defina uma senha na diretiva `requirepass SUA_SENHA_FORTE`.
4.  Reinicie: `sudo systemctl restart redis`.

## 7. VALIDAÇÃO FINAL
- [ ] O serviço está rodando e habilitado no boot (`systemctl enable`)?
- [ ] O acesso externo funciona (se configurado)?
- [ ] (Redis) A senha foi configurada antes de abrir a rede?
