> For the complete documentation index, see [llms.txt](https://wiki.datadike.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.datadike.com/product-docs/integracoes/databases/mysql.md).

# MySQL

O componente é responsável pelo proxy de banco de dados MySQL no PAM. O MySQL tem suporte nativo — não requer instalação de drivers adicionais no servidor (diferente do Oracle).

#### Requisitos do Cliente (máquina do usuário)

* **DB Client (DBeaver):** Conecta via conector de banco de dados — não precisa de MySQL client local.
* **Qualquer ferramenta:** Pode usar as informações do DB Guide para conectar com MySQL Workbench, HeidiSQL, DataGrip, etc.Criar Ativo MySQL no PAM

  #### Passo 1: Acessar Gerenciamento de Ativos

  1. Navegue até **Console → Asset List** (menu lateral esquerdo).
  2. Na árvore de ativos, selecione ou crie um nó (ex: *Bancos de Dados → MySQL*).

  #### Passo 2: Criar o Ativo

  1. Clique em **"+ Create"** (botão superior direito).
  2. Na janela de seleção de plataforma:
     * Tipo: **Database**
     * Plataforma: **MySQL**
  3. Preencha os campos:

  | Campo        | Valor                            | Observação               |
  | ------------ | -------------------------------- | ------------------------ |
  | **Name**     | Ex: `MySQL-Producao-App`         | Nome identificador único |
  | **Address**  | IP ou hostname do servidor MySQL | Ex: `10.0.2.30`          |
  | **Port**     | `3306`                           | Porta padrão MySQL       |
  | **Database** | Nome do banco de dados           | Ex: `app_production`     |
  | **Nodes**    | Selecionar o nó na árvore        | —                        |

  #### Passo 3: Adicionar Conta (Credencial)

  1. Na aba **"Accounts"** do ativo, clique em **"+ Create"**.
  2. Preencha:
     * **Name:** Ex: `svc-app-readonly`
     * **Username:** `pam_svc`
     * **Password:** A senha configurada no MySQL
  3. Salve.

  #### Passo 4: Criar Autorização

  1. Navegue até **Console → Permissions → Asset Permissions**.
  2. Clique em **"+ Create"**.
  3. Configure:
     * **Users/User Groups:** Selecione quem terá acesso.
     * **Assets:** Selecione o ativo MySQL criado.
     * **Accounts:** Selecione a conta (ou *@ALL*).
     * **Actions:** O controle granular de permissões (SELECT, INSERT, etc.) é feito no próprio MySQL, não no PAM.
  4. Salve.

  #### Passo 5: Testar Conectividade

  1. No ativo MySQL, clique no ícone de **Teste**.
  2. Resultado esperado: ✅ **Sucesso**.
  3. Se falhar, verificar: firewall, credenciais e `bind-address` do MySQL.

  ### Métodos de Conexão com MySQL

  #### A. Web GUI (Editor SQL no navegador)

  1. Acesse **Workbench** (menu lateral).
  2. Localize o ativo MySQL na lista de ativos autorizados.
  3. Clique → selecione conta → editor SQL abre no navegador.
  4. Funcionalidades: executar queries, salvar favoritas, exportar CSV, ver histórico.

  #### B. DB Client (DBeaver via conector de banco de dados)

  1. Acesse **Workbench → Database** → selecione o ativo MySQL.
  2. Método: **DB Client**.
  3. DBeaver abre automaticamente conectado ao MySQL via proxy conector de banco de dados.

  #### C. DB Connection Guide

  1. Selecione método **"DB Guide"**.
  2. O sistema mostra:
     * Host: `<IP_do_conector_DB>`
     * Port: porta alocada
     * Username / Password (temporários via proxy)
     * Database name
     * Linha de comando: `mysql -h <host> -P <port> -u <user> -p <database>`
  3. Use com MySQL Workbench, HeidiSQL, DataGrip, ou qualquer cliente MySQL.

  #### D. RemoteApp (Navicat publicado)

  1. Pré-requisito: Navicat configurado como RemoteApp no PAM.
  2. Selecione método **"RemoteApp"**.
  3. Navicat abre em sessão remota já conectado ao MySQL.

  ### Troubleshooting MySQL

  | Problema                             | Causa Provável                                              | Solução                                                                               |
  | ------------------------------------ | ----------------------------------------------------------- | ------------------------------------------------------------------------------------- |
  | Erro "Access denied for user"        | Credenciais incorretas ou host não autorizado               | Verificar GRANT com `'user'@'IP_PAM'` no MySQL                                        |
  | Erro "Can't connect to MySQL server" | Firewall bloqueando porta 3306                              | Liberar porta 3306 entre PAM e MySQL                                                  |
  | Erro "Host is not allowed"           | MySQL só aceita conexão de localhost                        | Alterar `bind-address` para `0.0.0.0` e reiniciar MySQL                               |
  | Timeout na conexão                   | Rede/firewall entre conector de banco de dados e MySQL      | Verificar rota de rede e regras de firewall                                           |
  | Teste OK mas usuário não vê o ativo  | Falta autorização (Asset Permission)                        | Criar autorização vinculando usuário + ativo + conta                                  |
  | Conexão via Domain/Gateway falha     | Gateway sem acesso ao MySQL                                 | Liberar porta MySQL também no host do Gateway                                         |
  | SSL connection error                 | MySQL exige SSL e conector de banco de dados não envia cert | Desativar `require_secure_transport` ou configurar cert no conector de banco de dados |
