> ## 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

> MySQLからOneSignalにカスタムイベントを同期して、ユーザーの行動に基づいた自動化されたJourneysとパーソナライズされたメッセージングキャンペーンをトリガーします。

export const PLATFORM_0 = "MySQL"

export const DATA_TYPE_0 = "イベントデータ"

export const COLUMN_HEADER_0 = "MySQL列"

export const PROPERTIES_DESCRIPTION_0 = "JSON形式のイベントプロパティ"

## 概要

OneSignal + MySQL統合により、MySQLデータベースからOneSignalへのカスタムイベントの同期が可能になり、ユーザーの行動に基づいた自動化されたメッセージングキャンペーンとJourneysをトリガーできます。

MySQLは、広く使用されているオープンソースのリレーショナルデータベース管理システムで、パーソナライズされたメッセージングキャンペーンを強化できる構造化されたイベントデータの保存に最適です。

## 要件

* アウトバウンドメッセージイベント用の[Event Streams](/docs/ja/event-streams)へのアクセス（プランの制限と超過料金が適用されます）
* インバウンドイベント同期用の[Custom Events](/docs/ja/custom-events)へのアクセス（プランの制限と超過料金が適用されます）
* [更新されたアカウントプラン](https://onesignal.com/pricing)（無料アプリでは利用できません）

### MySQL

* **MySQL Community 5.7**以降、または最新バージョンの**MariaDB**
* 構造化された行動データを含む**イベントテーブル**
* OneSignalからMySQLインスタンスへの**ネットワーク接続**
* **TLS v1.2**以上がサポートされている

***

## セットアップ

<Steps>
  <Step title="OneSignal専用のユーザーを作成する">
    読み取り専用権限を持つ専用ユーザーアカウントを作成します：

    ```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>
      イベントデータを含む複数のスキーマがある場合は、各スキーマに対して`GRANT SELECT`ステートメントを繰り返してください。
    </Info>
  </Step>

  <Step title="OneSignal接続を構成する">
    OneSignalで、**Data > Integrations**に移動し、**Add Integration**をクリックします。

    **MySQL**を選択し、接続の詳細を提供します：

    * **Host:** MySQLサーバーのホスト名
    * **Port:** MySQLポート（通常は3306）
    * **Database:** イベントテーブルを含むデータベース名
    * **Username:** `CENSUS`
    * **Password:** 上記で作成したパスワード
  </Step>

  <Step title="接続をテストする">
    **Test Connection**をクリックして、OneSignalがMySQLデータベースに正常に接続し、イベントテーブルにアクセスできることを確認します。
  </Step>
</Steps>

***

### イベントデータマッピング

{PLATFORM_0} {DATA_TYPE_0}をOneSignalのカスタムイベント形式にマッピングします：

| OneSignalフィールド | {COLUMN_HEADER_0} | 説明                         | 必須  |
| -------------- | ----------------- | -------------------------- | --- |
| `name`         | `event_name`      | イベント識別子                    | はい  |
| `external_id`  | `user_id`         | ユーザー識別子                    | はい  |
| `timestamp`    | `event_timestamp` | イベントが発生した時刻                | いいえ |
| `properties`   | `event_data`      | {PROPERTIES_DESCRIPTION_0} | いいえ |

### イベントテーブルスキーマの例

```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)
);
```

### テーブルモード

イベントテーブルを直接選択すると、OneSignalはすべての行を個別のイベントとして同期します。

### SQLクエリモード

カスタムSQLクエリを記述して、イベントデータを変換します：

```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;
```

***

## 高度なネットワーク構成

OneSignalは、リージョン制約、IPアドレス許可リスト、またはSSHトンネリングを含む高度なネットワーク制御を使用して、MySQLインスタンスに正常に接続できます。

OneSignalは、安全な接続のためにTLSバージョン1.2以上を使用するMySQLをサポートしています。

***

## FAQ

### どのMySQLバージョンがサポートされていますか？

OneSignalは、MySQL Community 5.7以降、および最新バージョンのMariaDBをサポートしています。

### プライベートネットワーク内のMySQLに接続できますか？

はい、OneSignalは、プライベートネットワーク内またはファイアウォールの背後にあるMySQLインスタンスに接続するためのSSHトンネリングとIP許可リストをサポートしています。

***
