> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# MySQL

> Sincronize eventos personalizados do MySQL para o OneSignal para acionar Journeys automatizadas e campanhas de mensagens personalizadas com base no comportamento do usuário.

export const DATA_TYPE_0 = "event data"

export const PLATFORM_0 = "MySQL"

export const COLUMN_HEADER_0 = "MySQL Column"

export const PROPERTIES_DESCRIPTION_0 = "Event properties as JSON"

## Visão geral

A integração OneSignal + MySQL permite a sincronização de eventos personalizados do seu banco de dados MySQL para o OneSignal para acionar campanhas de mensagens automatizadas e Journeys com base no comportamento do usuário.

MySQL é um sistema de gerenciamento de banco de dados relacional de código aberto amplamente usado, ideal para armazenar dados de eventos estruturados que podem alimentar campanhas de mensagens personalizadas.

## Requisitos

* Acesso a [Event Streams](/docs/pt-BR/event-streams) para eventos de mensagem de saída (Limitações de plano e excedentes se aplicam)
* Acesso a [Custom Events](/docs/pt-BR/custom-events) para sincronização de eventos de entrada (Limitações de plano e excedentes se aplicam)
* [Plano de Conta Atualizado](https://onesignal.com/pricing) (não disponível em apps gratuitos)

### MySQL

* **MySQL Community 5.7** ou posterior, ou versões recentes do **MariaDB**
* **Tabelas de eventos** contendo dados comportamentais estruturados
* **Conectividade de rede** do OneSignal para sua instância MySQL
* **TLS v1.2** ou superior suportado

***

## Configuração

<Steps>
  <Step title="Criar usuário dedicado para OneSignal">
    Crie uma conta de usuário dedicada com permissões somente leitura:

    ```sql theme={null}
    -- Create census user with ability to sign in with a password
    CREATE USER CENSUS IDENTIFIED BY '<strong, unique password>';

    -- Grant read-only access to your event schema
    GRANT SELECT ON <your_schema>.* TO CENSUS;
    ```

    <Info>
      Se você tiver vários esquemas que contêm dados de eventos, repita a instrução `GRANT SELECT` para cada esquema.
    </Info>
  </Step>

  <Step title="Configurar conexão OneSignal">
    No OneSignal, vá para **Data > Integrations** e clique em **Add Integration**.

    Selecione **MySQL** e forneça seus detalhes de conexão:

    * **Host:** Nome do host do seu servidor MySQL
    * **Port:** Porta MySQL (tipicamente 3306)
    * **Database:** Nome do banco de dados contendo suas tabelas de eventos
    * **Username:** `CENSUS`
    * **Password:** A senha que você criou acima
  </Step>

  <Step title="Testar conexão">
    Clique em **Test Connection** para verificar se o OneSignal pode se conectar com sucesso ao seu banco de dados MySQL e acessar suas tabelas de eventos.
  </Step>
</Steps>

***

### Mapeamento de dados de evento

Mapeie seu {DATA_TYPE_0} {PLATFORM_0} para o formato de eventos personalizados do OneSignal:

| Campo OneSignal | {COLUMN_HEADER_0} | Descrição                  | Obrigatório |
| --------------- | ----------------- | -------------------------- | ----------- |
| `name`          | `event_name`      | Identificador de evento    | Sim         |
| `external_id`   | `user_id`         | Identificador de usuário   | Sim         |
| `timestamp`     | `event_timestamp` | Quando o evento ocorreu    | Não         |
| `properties`    | `event_data`      | {PROPERTIES_DESCRIPTION_0} | Não         |

### Exemplo de Esquema de Tabela de Evento

```sql theme={null}
CREATE TABLE user_events (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    event_name VARCHAR(100) NOT NULL,
    user_id VARCHAR(255) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    event_data JSON,
    session_id VARCHAR(255),
    device_type VARCHAR(50)
);
```

### Modo de Tabela

Selecione sua tabela de eventos diretamente e o OneSignal sincronizará todas as linhas como eventos individuais.

### Modo de Consulta SQL

Escreva consultas SQL personalizadas para transformar seus dados de eventos:

```sql theme={null}
-- Example: Recent high-value events
SELECT
    event_name,
    user_id,
    created_at as timestamp,
    event_data as payload
FROM user_events
WHERE created_at >= DATE_SUB(NOW(), INTERVAL 7 DAY)
    AND JSON_EXTRACT(event_data, '$.value') > 100
ORDER BY created_at DESC;
```

***

## Configuração Avançada de Rede

O OneSignal pode se conectar com sucesso a instâncias MySQL usando controles de rede avançados, incluindo restrições de região, listas de permissão de endereços IP ou Túnel SSH.

O OneSignal suporta MySQL com versões TLS 1.2 e superior para conexões seguras.

***

## FAQ

### Quais versões do MySQL são suportadas?

O OneSignal suporta MySQL Community 5.7 ou posterior, assim como versões recentes do MariaDB.

### Posso me conectar ao MySQL em uma rede privada?

Sim, o OneSignal suporta túnel SSH e listas de permissão de IP para conectar a instâncias MySQL em redes privadas ou atrás de firewalls.

***
