> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-fbfa8bee.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# MySQLとClickHouseのインテグレーション

> MySQLインテグレーションの説明ページ

export const ExperimentalBadge = () => {
  return <div className="experimentalBadge">
            <div className="experimentalIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.25" d="M5.5 2H10.5" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M9.50015 2V6.19625L13.4283 12.7425C13.4738 12.8183 13.4985 12.9049 13.4996 12.9934C13.5008 13.0818 13.4785 13.169 13.435 13.246C13.3914 13.323 13.3283 13.3871 13.2519 13.4317C13.1755 13.4764 13.0886 13.4999 13.0002 13.5H3.00015C2.91164 13.5 2.8247 13.4766 2.74822 13.432C2.67174 13.3874 2.60847 13.3233 2.56487 13.2463C2.52126 13.1693 2.49889 13.082 2.50004 12.9935C2.50119 12.905 2.52582 12.8184 2.5714 12.7425L6.50015 6.19625V2" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M4.47656 9.56754C5.30344 9.41254 6.47656 9.47942 7.99969 10.25C10.0153 11.2707 11.4216 11.0569 12.2184 10.7282" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            実験的な機能です。 <u><a href="/docs/beta-and-experimental-features#experimental-features">詳細を見る。</a></u>
        </div>;
};

export const CloudNotSupportedBadge = () => {
  return <div className="cloudNotSupportedBadge">
            <div className="cloudNotSupportedIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.5" d="M6.33366 12.6666L12.3739 12.6667C13.6593 12.6667 14.7073 11.6187 14.7073 10.3334C14.7073 9.04804 13.6593 8.00003 12.3739 8.00003C12.3739 8.00003 12.3337 7.66659 12.0003 7.33325M10.667 5.33322C8.00033 2.33325 4.45395 4.78537 4.14195 6.68203C2.55728 6.7627 1.29395 8.06203 1.29395 9.6667C1.29395 11.3234 2.66699 12.6666 4.00033 12.6666" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.5" d="M2.66699 14L12.0003 4.66663" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>

        </div>
            ClickHouse Cloud では利用できません
        </div>;
};

このページでは、MySQL テーブルからデータを読み取るための `MySQL` テーブルエンジンの使用方法について説明します。

<Note>
  ClickHouse Cloud では、[MySQL ClickPipe](/ja/integrations/clickpipes/mysql/index) (現在パブリックベータ) を使用して、MySQL テーブルから ClickHouse に簡単にデータを移行することもできます。
</Note>

<div id="connecting-clickhouse-to-mysql-using-the-mysql-table-engine">
  ## MySQL テーブルエンジン を使用して ClickHouse を MySQL に接続する
</div>

`MySQL` テーブルエンジン を使用すると、ClickHouse を MySQL に接続できます。**SELECT** 文と **INSERT** 文は、ClickHouse 側でも MySQL テーブル側でも実行できます。この記事では、`MySQL` テーブルエンジン の基本的な使い方を説明します。

<div id="1-configure-mysql">
  ### 1. MySQL を設定する
</div>

1. MySQL にデータベースを作成します:

```sql theme={null}
  CREATE DATABASE db1;
```

2. テーブルを作成します:

```sql theme={null}
  CREATE TABLE db1.table1 (
    id INT,
    column1 VARCHAR(255)
  );
```

3. サンプル行を挿入します:

```sql theme={null}
  INSERT INTO db1.table1
    (id, column1)
  VALUES
    (1, 'abc'),
    (2, 'def'),
    (3, 'ghi');
```

4. ClickHouse から接続するためのユーザーを作成します:

```sql theme={null}
  CREATE USER 'mysql_clickhouse'@'%' IDENTIFIED BY 'Password123!';
```

5. 必要に応じて権限を付与します。 (説明のため、`mysql_clickhouse` ユーザーには管理者権限を付与します。)

```sql theme={null}
  GRANT ALL PRIVILEGES ON *.* TO 'mysql_clickhouse'@'%';
```

<Note>
  この機能を ClickHouse Cloud で使用する場合、ClickHouse Cloud の IP アドレスから MySQL インスタンスにアクセスできるよう許可が必要になることがあります。
  送信トラフィックの詳細については、ClickHouse の [Cloud Endpoints API](/ja/products/cloud/guides/sql-console/query-endpoints) を確認してください。
</Note>

<div id="2-define-a-table-in-clickhouse">
  ### 2. ClickHouseでテーブルを定義する
</div>

1. それでは、`MySQL` テーブルエンジンを使用する ClickHouse テーブルを作成しましょう。

```sql theme={null}
  CREATE TABLE mysql_table1 (
    id UInt64,
    column1 String
  )
  ENGINE = MySQL('mysql-host.domain.com','db1','table1','mysql_clickhouse','Password123!')
```

最低限必要なパラメータは次のとおりです。

| parameter | Description      | example               |
| --------- | ---------------- | --------------------- |
| host      | ホスト名または IP       | mysql-host.domain.com |
| database  | MySQL データベース名    | db1                   |
| table     | MySQL テーブル名      | table1                |
| user      | MySQL に接続するユーザー名 | mysql\_clickhouse     |
| password  | MySQL に接続するパスワード | Password123!          |

<Note>
  パラメータの完全な一覧については、[MySQL テーブルエンジン](/ja/reference/engines/table-engines/integrations/mysql) のドキュメントページを参照してください。
</Note>

<div id="3-test-the-integration">
  ### 3. インテグレーションをテストする
</div>

1. MySQL でサンプルの行を挿入します:

```sql theme={null}
  INSERT INTO db1.table1
    (id, column1)
  VALUES
    (4, 'jkl');
```

2. MySQLテーブルの既存の行に、先ほど追加した新しい行も含めて、ClickHouseテーブルに入っていることを確認します。

```sql theme={null}
  SELECT
      id,
      column1
  FROM mysql_table1
```

4 行表示されるはずです。

```response theme={null}
  Query id: 6d590083-841e-4e95-8715-ef37d3e95197

  ┌─id─┬─column1─┐
  │  1 │ abc     │
  │  2 │ def     │
  │  3 │ ghi     │
  │  4 │ jkl     │
  └────┴─────────┘

  4 rows in set. Elapsed: 0.044 sec.
```

3. ClickHouseのテーブルに行を追加しましょう:

```sql theme={null}
  INSERT INTO mysql_table1
    (id, column1)
  VALUES
    (5,'mno')
```

4. MySQL に新しい行が表示されていることを確認します:

```bash theme={null}
  mysql> select id,column1 from db1.table1;
```

新しい行が表示されます：

```response theme={null}
  +------+---------+
  | id   | column1 |
  +------+---------+
  |    1 | abc     |
  |    2 | def     |
  |    3 | ghi     |
  |    4 | jkl     |
  |    5 | mno     |
  +------+---------+
  5 rows in set (0.01 sec)
```

<div id="summary">
  ### 概要
</div>

`MySQL` テーブルエンジンを使用すると、ClickHouse を MySQL に接続し、データを双方向にやり取りできます。詳細については、[MySQL テーブルエンジン](/ja/reference/functions/table-functions/mysql) のドキュメントページを参照してください。
