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

> Позволяет подключаться к базам данных на удалённом сервере MySQL и выполнять запросы `INSERT` и `SELECT` для обмена данными между ClickHouse и MySQL.

# Движок базы данных 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 и выполнять запросы `INSERT` и `SELECT` для обмена данными между ClickHouse и MySQL.

Движок базы данных `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](/ru/reference/data-types/int-uint)          |
| TINYINT                          | [Int8](/ru/reference/data-types/int-uint)           |
| UNSIGNED SMALLINT                | [UInt16](/ru/reference/data-types/int-uint)         |
| SMALLINT                         | [Int16](/ru/reference/data-types/int-uint)          |
| UNSIGNED INT, UNSIGNED MEDIUMINT | [UInt32](/ru/reference/data-types/int-uint)         |
| INT, MEDIUMINT                   | [Int32](/ru/reference/data-types/int-uint)          |
| UNSIGNED BIGINT                  | [UInt64](/ru/reference/data-types/int-uint)         |
| BIGINT                           | [Int64](/ru/reference/data-types/int-uint)          |
| FLOAT                            | [Float32](/ru/reference/data-types/float)           |
| DOUBLE                           | [Float64](/ru/reference/data-types/float)           |
| DATE                             | [Date](/ru/reference/data-types/date)               |
| DATETIME, TIMESTAMP              | [DateTime](/ru/reference/data-types/datetime)       |
| BINARY                           | [FixedString](/ru/reference/data-types/fixedstring) |

Все остальные типы данных MySQL преобразуются в [String](/ru/reference/data-types/string).

Тип [Nullable](/ru/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)
```

База данных в ClickHouse, которая обменивается данными с сервером MySQL:

```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 │
└────────┴───────┘
```
