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

# Fuente de diccionario de MySQL

> Configura MySQL como fuente de diccionario en ClickHouse.

Ejemplo de configuración:

<Tabs>
  <Tab title="DDL">
    ```sql theme={null}
    SOURCE(MYSQL(
        port 3306
        user 'clickhouse'
        password 'qwerty'
        replica(host 'example01-1' priority 1)
        replica(host 'example01-2' priority 1)
        db 'db_name'
        table 'table_name'
        where 'id=10'
        invalidate_query 'SQL_QUERY'
        fail_on_connection_loss 'true'
        query 'SELECT id, value_1, value_2 FROM db_name.table_name'
    ))
    ```
  </Tab>

  <Tab title="Archivo de configuración">
    ```xml theme={null}
    <source>
      <mysql>
          <port>3306</port>
          <user>clickhouse</user>
          <password>qwerty</password>
          <replica>
              <host>example01-1</host>
              <priority>1</priority>
          </replica>
          <replica>
              <host>example01-2</host>
              <priority>1</priority>
          </replica>
          <db>db_name</db>
          <table>table_name</table>
          <where>id=10</where>
          <invalidate_query>SQL_QUERY</invalidate_query>
          <fail_on_connection_loss>true</fail_on_connection_loss>
          <query>SELECT id, value_1, value_2 FROM db_name.table_name</query>
      </mysql>
    </source>
    ```
  </Tab>
</Tabs>

<br />

Campos de configuración:

| Configuración             | Descripción                                                                                                                                                                                                                                                                                                                                                                                       |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `port`                    | El puerto del servidor MySQL. Puedes especificarlo para todas las réplicas o para cada una por separado (dentro de `<replica>`).                                                                                                                                                                                                                                                                  |
| `user`                    | Nombre del usuario de MySQL. Puedes especificarlo para todas las réplicas o para cada una por separado (dentro de `<replica>`).                                                                                                                                                                                                                                                                   |
| `password`                | Contraseña del usuario de MySQL. Puedes especificarla para todas las réplicas o para cada una por separado (dentro de `<replica>`).                                                                                                                                                                                                                                                               |
| `replica`                 | Sección de configuración de las réplicas. Puede haber varias secciones.                                                                                                                                                                                                                                                                                                                           |
| `replica/host`            | El host de MySQL.                                                                                                                                                                                                                                                                                                                                                                                 |
| `replica/priority`        | La prioridad de la réplica. Al intentar conectarse, ClickHouse recorre las réplicas en orden de prioridad. Cuanto menor sea el número, mayor será la prioridad.                                                                                                                                                                                                                                   |
| `db`                      | Nombre de la base de datos.                                                                                                                                                                                                                                                                                                                                                                       |
| `table`                   | Nombre de la tabla.                                                                                                                                                                                                                                                                                                                                                                               |
| `where`                   | El criterio de selección. La sintaxis de las condiciones es la misma que la de la cláusula `WHERE` de MySQL; por ejemplo, `id > 10 AND id < 20`. Opcional.                                                                                                                                                                                                                                        |
| `invalidate_query`        | Consulta para comprobar el estado del diccionario. Opcional. Más información en la sección [Actualización de datos del diccionario mediante LIFETIME](/es/reference/statements/create/dictionary/lifetime).                                                                                                                                                                                       |
| `fail_on_connection_loss` | Controla el comportamiento del servidor ante una pérdida de conexión. Si es `true`, se genera una excepción inmediatamente si se pierde la conexión entre el cliente y el servidor. Si es `false`, el servidor ClickHouse reintenta ejecutar la consulta tres veces antes de generar una excepción. Ten en cuenta que reintentar aumenta los tiempos de respuesta. Valor predeterminado: `false`. |
| `query`                   | La consulta personalizada. Opcional.                                                                                                                                                                                                                                                                                                                                                              |

<Note>
  Los campos `table` o `where` no pueden usarse junto con el campo `query`. Además, debe declararse uno de los campos `table` o `query`.
</Note>

<Note>
  No existe un parámetro explícito `secure`. Al establecer una conexión SSL, la seguridad es obligatoria.
</Note>

Es posible conectarse a MySQL en un host local mediante sockets. Para ello, configura `host` y `socket`.

Ejemplo de configuración:

<Tabs>
  <Tab title="DDL">
    ```sql theme={null}
    SOURCE(MYSQL(
        host 'localhost'
        socket '/path/to/socket/file.sock'
        user 'clickhouse'
        password 'qwerty'
        db 'db_name'
        table 'table_name'
        where 'id=10'
        invalidate_query 'SQL_QUERY'
        fail_on_connection_loss 'true'
        query 'SELECT id, value_1, value_2 FROM db_name.table_name'
    ))
    ```
  </Tab>

  <Tab title="Archivo de configuración">
    ```xml theme={null}
    <source>
      <mysql>
          <host>localhost</host>
          <socket>/path/to/socket/file.sock</socket>
          <user>clickhouse</user>
          <password>qwerty</password>
          <db>db_name</db>
          <table>table_name</table>
          <where>id=10</where>
          <invalidate_query>SQL_QUERY</invalidate_query>
          <fail_on_connection_loss>true</fail_on_connection_loss>
          <query>SELECT id, value_1, value_2 FROM db_name.table_name</query>
      </mysql>
    </source>
    ```
  </Tab>
</Tabs>
