Saltar al contenido principal
ClickHouse admite el MySQL wire protocol. Esto permite que ciertos clientes que no disponen de conectores nativos de ClickHouse utilicen en su lugar el protocolo MySQL, y se ha validado con las siguientes herramientas de BI: Si estás probando otros clientes o integraciones no validados, ten en cuenta que pueden existir las siguientes limitaciones:
  • Es posible que la implementación de SSL no sea totalmente compatible; podría haber problemas con TLS SNI.
  • Es posible que una herramienta concreta requiera funciones del dialecto (por ejemplo, funciones o ajustes específicos de MySQL) que todavía no se han implementado.
Si hay un driver nativo disponible (por ejemplo, DBeaver), siempre es preferible usarlo en lugar de la interfaz MySQL. Además, aunque la mayoría de los clientes MySQL para distintos lenguajes deberían funcionar bien, no se garantiza que la interfaz MySQL sea un sustituto directo para una base de código con consultas MySQL existentes. Si tu caso de uso implica una herramienta concreta que no tiene un driver nativo de ClickHouse y te gustaría usarla a través de la interfaz MySQL, y has encontrado ciertas incompatibilidades, por favor crea un issue en el repositorio de ClickHouse. ::::note Para ofrecer una mejor compatibilidad con el dialecto SQL de las herramientas de BI anteriores, la interfaz MySQL de ClickHouse ejecuta implícitamente las consultas SELECT con el ajuste prefer_column_name_to_alias = 1. Esto no se puede desactivar y, en casos excepcionales, puede dar lugar a un comportamiento distinto entre las consultas enviadas a las interfaces de consulta normal y MySQL de ClickHouse. ::::

Habilitar la interfaz MySQL en ClickHouse Cloud

  1. Después de crear tu servicio de ClickHouse Cloud, haz clic en el botón Connect.

  1. Cambia el menú desplegable Connect with a MySQL.

  1. Activa el interruptor para habilitar la interfaz MySQL en este servicio. Esto expondrá el puerto 3306 para este servicio y te mostrará la pantalla de conexión de MySQL, que incluye tu nombre de usuario MySQL único. La contraseña será la misma que la del usuario predeterminado del servicio.

Copia la cadena de conexión MySQL que se muestra.

Crear varios usuarios MySQL en ClickHouse Cloud

De forma predeterminada, existe un usuario integrado mysql4<subdomain>, que usa la misma contraseña que default. La parte <subdomain> es el primer segmento del hostname de tu servicio de ClickHouse Cloud. Este formato es necesario para trabajar con herramientas que implementan una conexión segura, pero no proporcionan información SNI durante el handshake de TLS, lo que hace imposible realizar el enrutamiento interno sin una pista adicional en el nombre de usuario (el cliente de consola de MySQL es una de esas herramientas). Por ello, recomendamos encarecidamente seguir el formato mysql4<subdomain>_<username> al crear un usuario nuevo para usarlo con la interfaz MySQL, donde <subdomain> sirve para identificar tu servicio de Cloud y <username> es un sufijo arbitrario que tú eliges.
Para un hostname de ClickHouse Cloud como foobar.us-east1.aws.clickhouse.cloud, la parte <subdomain> equivale a foobar, y un nombre de usuario MySQL personalizado podría ser mysql4foobar_team1.
Puedes crear usuarios adicionales para usar con la interfaz MySQL si, por ejemplo, necesitas aplicar ajustes adicionales.
  1. Opcional: crea un perfil de configuración para aplicarlo a tu usuario personalizado. Por ejemplo, my_custom_profile con una configuración adicional que se aplicará de forma predeterminada cuando nos conectemos con el usuario que crearemos más adelante:
    CREATE SETTINGS PROFILE my_custom_profile SETTINGS prefer_column_name_to_alias=1;
    
    prefer_column_name_to_alias se usa solo como ejemplo; puedes usar otras configuraciones aquí.
  2. Crea un usuario con el siguiente formato: mysql4<subdomain>_<username> (consulta arriba). La contraseña debe estar en formato double SHA1. Por ejemplo:
    CREATE USER mysql4foobar_team1 IDENTIFIED WITH double_sha1_password BY 'YourPassword42$';
    
    o, si quieres usar un perfil personalizado para este usuario:
    CREATE USER mysql4foobar_team1 IDENTIFIED WITH double_sha1_password BY 'YourPassword42$' SETTINGS PROFILE 'my_custom_profile';
    
    donde my_custom_profile es el nombre del perfil que creaste antes.
  3. Concede al nuevo usuario los permisos necesarios para interactuar con las tablas o bases de datos que quieras. Por ejemplo, si quieres conceder acceso solo a system.query_log:
    GRANT SELECT ON system.query_log TO mysql4foobar_team1;
    
  4. Usa el usuario creado para conectarte a tu servicio de ClickHouse Cloud mediante la interfaz MySQL.

Solución de problemas con varios usuarios MySQL en ClickHouse Cloud

Si ha creado un nuevo usuario MySQL y ve el siguiente error al conectarse mediante el cliente de línea de comandos de MySQL:
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading authorization packet', system error: 54
En este caso, asegúrese de que el nombre de usuario siga el formato mysql4<subdomain>_<username>, como se indica (más arriba).

Habilitar la interfaz MySQL en ClickHouse autogestionado

Añada la opción mysql_port al archivo de configuración de su servidor. Por ejemplo, puede definir el puerto en un nuevo archivo XML dentro de la carpeta config.d/:
<clickhouse>
    <mysql_port>9004</mysql_port>
</clickhouse>
Inicie el servidor de ClickHouse y busque un mensaje de registro similar al siguiente en el que se mencione Listening for MySQL compatibility protocol:
{} <Information> Application: Listening for MySQL compatibility protocol: 127.0.0.1:9004

Conectar MySQL a ClickHouse

El siguiente comando muestra cómo conectar el cliente MySQL mysql a ClickHouse:
mysql --protocol tcp -h [hostname] -u [username] -P [port_number] [database_name]
Por ejemplo:
$ mysql --protocol tcp -h 127.0.0.1 -u default -P 9004 default
Salida si la conexión se realizó correctamente:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 20.2.1.1-ClickHouse

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>
Para garantizar la compatibilidad con todos los clientes MySQL, se recomienda especificar la contraseña del usuario con double SHA1 en el archivo de configuración. Si la contraseña del usuario se especifica con SHA256, algunos clientes no podrán autenticarse (mysqljs y las versiones antiguas de las herramientas de línea de comandos MySQL y MariaDB). Restricciones:
  • no se admiten las consultas preparadas
  • algunos tipos de datos se envían como cadenas
Para cancelar una consulta larga, use la instrucción KILL QUERY connection_id (se sustituye por KILL QUERY WHERE query_id = connection_id durante el procesamiento). Por ejemplo:
$ mysql --protocol tcp -h mysql_server -P 9004 default -u default --password=123 -e "KILL QUERY 123456;"
Última modificación el 10 de junio de 2026