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

> リモートの MySQL サーバー上のデータベースに接続し、ClickHouse と MySQL の間でデータをやり取りするための `INSERT` および `SELECT` クエリを実行できます。

# MySQL データベースエンジン

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>
            Not supported in ClickHouse Cloud
        </div>;
};

リモートの MySQL サーバー上のデータベースに接続し、ClickHouse と MySQL の間でデータをやり取りするための `INSERT` および `SELECT` クエリを実行できます。

`MySQL` データベースエンジンはクエリを MySQL サーバー向けに変換するため、`SHOW TABLES` や `SHOW CREATE TABLE` などの操作を実行できます。

次のクエリは実行できません。

* `RENAME`
* `CREATE TABLE`
* `ALTER`

<div id="creating-a-database">
  ## データベースの作成
</div>

```sql theme={null}
CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster]
ENGINE = MySQL('host:port', ['database' | database], 'user', 'password')
```

**エンジンパラメータ**

* `host:port` — MySQL サーバーのアドレス。
* `database` — リモートデータベースの名前。
* `user` — MySQL のユーザー名。
* `password` — ユーザーのパスワード。

<div id="data_types-support">
  ## 対応するデータ型
</div>

| MySQL                            | ClickHouse                                          |
| -------------------------------- | --------------------------------------------------- |
| UNSIGNED TINYINT                 | [UInt8](/ja/reference/data-types/int-uint)          |
| TINYINT                          | [Int8](/ja/reference/data-types/int-uint)           |
| UNSIGNED SMALLINT                | [UInt16](/ja/reference/data-types/int-uint)         |
| SMALLINT                         | [Int16](/ja/reference/data-types/int-uint)          |
| UNSIGNED INT, UNSIGNED MEDIUMINT | [UInt32](/ja/reference/data-types/int-uint)         |
| INT, MEDIUMINT                   | [Int32](/ja/reference/data-types/int-uint)          |
| UNSIGNED BIGINT                  | [UInt64](/ja/reference/data-types/int-uint)         |
| BIGINT                           | [Int64](/ja/reference/data-types/int-uint)          |
| FLOAT                            | [Float32](/ja/reference/data-types/float)           |
| DOUBLE                           | [Float64](/ja/reference/data-types/float)           |
| DATE                             | [Date](/ja/reference/data-types/date)               |
| DATETIME, TIMESTAMP              | [DateTime](/ja/reference/data-types/datetime)       |
| BINARY                           | [FixedString](/ja/reference/data-types/fixedstring) |

それ以外の MySQL データ型はすべて [String](/ja/reference/data-types/string) に変換されます。

[Nullable](/ja/reference/data-types/nullable) もサポートされています。

<div id="global-variables-support">
  ## グローバル変数のサポート
</div>

互換性を高めるため、MySQL スタイルで `@@identifier` としてグローバル変数を参照できます。

サポートされている変数は次のとおりです。

* `version`
* `max_allowed_packet`

<Note>
  現時点では、これらの変数はダミーであり、実際には何にも対応していません。
</Note>

例:

```sql theme={null}
SELECT @@version;
```

<div id="examples-of-use">
  ## 使用例
</div>

MySQLのテーブル:

```text theme={null}
mysql> USE test;
Database changed

mysql> CREATE TABLE `mysql_table` (
    ->   `int_id` INT NOT NULL AUTO_INCREMENT,
    ->   `float` FLOAT NOT NULL,
    ->   PRIMARY KEY (`int_id`));
Query OK, 0 rows affected (0,09 sec)

mysql> insert into mysql_table (`int_id`, `float`) VALUES (1,2);
Query OK, 1 row affected (0,00 sec)

mysql> select * from mysql_table;
+------+-----+
| int_id | value |
+------+-----+
|      1 |     2 |
+------+-----+
1 row in set (0,00 sec)
```

MySQLサーバーとデータをやり取りする ClickHouse 内のデータベース:

```sql theme={null}
CREATE DATABASE mysql_db ENGINE = MySQL('localhost:3306', 'test', 'my_user', 'user_password') SETTINGS read_write_timeout=10000, connect_timeout=100;
```

```sql theme={null}
SHOW DATABASES
```

```text theme={null}
┌─name─────┐
│ default  │
│ mysql_db │
│ system   │
└──────────┘
```

```sql theme={null}
SHOW TABLES FROM mysql_db
```

```text theme={null}
┌─name─────────┐
│  mysql_table │
└──────────────┘
```

```sql theme={null}
SELECT * FROM mysql_db.mysql_table
```

```text theme={null}
┌─int_id─┬─value─┐
│      1 │     2 │
└────────┴───────┘
```

```sql theme={null}
INSERT INTO mysql_db.mysql_table VALUES (3,4)
```

```sql theme={null}
SELECT * FROM mysql_db.mysql_table
```

```text theme={null}
┌─int_id─┬─value─┐
│      1 │     2 │
│      3 │     4 │
└────────┴───────┘
```
