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

> Permite conectar-se a bancos de dados em um servidor MySQL remoto e executar consultas `INSERT` e `SELECT` para transferir dados entre o ClickHouse e o 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>
            Sem suporte no ClickHouse Cloud
        </div>;
};

<div id="mysql-database-engine">
  # Mecanismo de banco de dados MySQL
</div>

Permite conectar-se a bancos de dados em um servidor MySQL remoto e executar consultas `INSERT` e `SELECT` para transferir dados entre o ClickHouse e o MySQL.

O mecanismo de banco de dados `MySQL` traduz consultas para o servidor MySQL, para que você possa executar operações como `SHOW TABLES` ou `SHOW CREATE TABLE`.

Não é possível executar as seguintes consultas:

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

<div id="creating-a-database">
  ## Criar um banco de dados
</div>

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

**Parâmetros do mecanismo**

* `host:port` — Endereço do servidor MySQL.
* `database` — Nome do banco de dados remoto.
* `user` — Usuário do MySQL.
* `password` — Senha do usuário.

**Configurações**

<div id="enable-compression">
  ### `enable_compression`
</div>

Habilita a compressão zlib para a conexão via protocolo MySQL. Quando definido como `1`, o ClickHouse solicita a compressão no nível do protocolo ao servidor MySQL.

Valor padrão: `0`.

Exemplo:

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

<div id="data_types-support">
  ## Suporte a tipos de dados
</div>

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

Todos os outros tipos de dados do MySQL são convertidos em [String](/pt-BR/reference/data-types/string).

Há suporte para [Nullable](/pt-BR/reference/data-types/nullable).

<div id="global-variables-support">
  ## Suporte a variáveis globais
</div>

Para maior compatibilidade, é possível referenciar variáveis globais no estilo do MySQL, como `@@identifier`.

Há suporte para estas variáveis:

* `version`
* `max_allowed_packet`

<Note>
  No momento, essas variáveis são apenas placeholders e não correspondem a nada.
</Note>

Exemplo:

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

<div id="examples-of-use">
  ## Exemplos de uso
</div>

Tabela no 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)
```

Banco de dados no ClickHouse, com troca de dados com o servidor 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 │
└────────┴───────┘
```
