跳转到主要内容
本页介绍如何使用 MySQL 表引擎从 MySQL 表中读取数据。
对于 ClickHouse Cloud,你还可以使用 MySQL ClickPipe (当前处于 Public Beta) 轻松将数据从 MySQL 表迁移到 ClickHouse。

使用 MySQL 表引擎将 ClickHouse 连接到 MySQL

MySQL 表引擎可让您将 ClickHouse 连接到 MySQL。您可以在 ClickHouse 或 MySQL 表中执行 SELECTINSERT 语句。本文介绍 MySQL 表引擎的基本用法。

1. 配置 MySQL

  1. 在 MySQL 中创建数据库:
  CREATE DATABASE db1;
  1. 创建表:
  CREATE TABLE db1.table1 (
    id INT,
    column1 VARCHAR(255)
  );
  1. 插入示例数据行:
  INSERT INTO db1.table1
    (id, column1)
  VALUES
    (1, 'abc'),
    (2, 'def'),
    (3, 'ghi');
  1. 创建一个供 ClickHouse 连接使用的用户:
  CREATE USER 'mysql_clickhouse'@'%' IDENTIFIED BY 'Password123!';
  1. 按需授予权限。 (为便于演示,已向 mysql_clickhouse 用户授予管理员权限。)
  GRANT ALL PRIVILEGES ON *.* TO 'mysql_clickhouse'@'%';
如果你在 ClickHouse Cloud 中使用此功能,可能需要允许 ClickHouse Cloud 的 IP 地址访问你的 MySQL 实例。 有关出站流量的详细信息,请参阅 ClickHouse Cloud 端点 API

2. 在 ClickHouse 中定义表

  1. 现在创建一个使用 MySQL 表引擎的 ClickHouse 表:
  CREATE TABLE mysql_table1 (
    id UInt64,
    column1 String
  )
  ENGINE = MySQL('mysql-host.domain.com','db1','table1','mysql_clickhouse','Password123!')
至少需要以下参数:
parameterDescriptionexample
host主机名或 IP 地址mysql-host.domain.com
databaseMySQL 数据库名称db1
tableMySQL 表名称table1
user连接 MySQL 的用户名mysql_clickhouse
password连接 MySQL 的密码Password123!
完整参数列表请参阅 MySQL 表引擎 文档页面。

3. 测试集成

  1. 在 MySQL 中,插入一行示例数据:
  INSERT INTO db1.table1
    (id, column1)
  VALUES
    (4, 'jkl');
  1. 注意:MySQL 表中现有的行以及你刚刚添加的新行,都已出现在 ClickHouse 表中:
  SELECT
      id,
      column1
  FROM mysql_table1
你应该会看到 4 行:
  Query id: 6d590083-841e-4e95-8715-ef37d3e95197

  ┌─id─┬─column1─┐
  │  1 │ abc     │
  │  2 │ def     │
  │  3 │ ghi     │
  │  4 │ jkl     │
  └────┴─────────┘

  4 rows in set. Elapsed: 0.044 sec.
  1. 向 ClickHouse 表中添加一行数据:
  INSERT INTO mysql_table1
    (id, column1)
  VALUES
    (5,'mno')
  1. 注意,MySQL 中会出现新的一行:
  mysql> select id,column1 from db1.table1;
你应该会看到新增的行:
  +------+---------+
  | id   | column1 |
  +------+---------+
  |    1 | abc     |
  |    2 | def     |
  |    3 | ghi     |
  |    4 | jkl     |
  |    5 | mno     |
  +------+---------+
  5 rows in set (0.01 sec)

摘要

MySQL 表引擎可让你将 ClickHouse 连接到 MySQL,在两者之间双向交换数据。更多详情请参阅 MySQL 表引擎 的文档页面。
最后修改于 2026年6月10日