用 mysql 客户端连接 clickhouse

Posted 福州司马懿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用 mysql 客户端连接 clickhouse相关的知识,希望对你有一定的参考价值。

说明

因为 mysql 被 Oracle 收购了,这里用 mysql 的社区版本,叫 mariadb(本质上是一样的)

  • 查看 mysql 版本 mysql --version
  • 进入 mysql 命令交互界面 mysql
  • 在 mysql 客户端执行,查看服务器版本 SELECT version()

    使用 mysql --help 可以查看帮助文档


    连接命令
  • -h 待连接的主机名或IP
  • -u 如果不是当前用户,需要输入用户名
  • -P 如果不是mysql的默认端口(3306),需要手动输入
  • -p 要求输入密码

连接默认数据库

mysql -h<ip地址> -u<用户名> -p,端口使用默认的,可以连接默认的 MariaDB。

使用 STATUS 命令,可以查看当前连接服务器的基本状态

连接clickhouse

使用 mysql 的客户端连接 clickhouse,必须使用特殊的端口。定义在 /etc/clickhouse-server/config.xml 中的 mysql_port 中配置

mysql -h<ip地址> -u<用户名> -P9004 -p,可以连接默认的 clickhouse

但此时,使用 STATUS 命令server 名称依旧会被认为是 mysql,然后版本号才会告诉你是 clickhouse

也可以使用 clickhouse 的命令,查看系统表 SELECT * FROM system.build_options WHERE upper(name) LIKE '%VERSION%';

执行的命令必须遵循 clickhouse 语法,而非mysql。且交互模式默认为多行模式,以封号而非换行符作为SQL语句的结束符。

-- 建表
CREATE TABLE mysql_table(
	id UInt32,
	name String,
	age UInt8
) ENGINE = MergeTree()
PRIMARY KEY id
ORDER BY id
PARTITION BY age
-- 插入
INSERT INTO mysql_table VALUES 
	(1, 'bob', 30), 
	(2, 'tina', 28), 
	(3, 'tom', 32),
	(4, 'linda', 25);
-- 查询
SELECT * FROM mysql_table;

弊端

使用 MySQL客户端登陆,有个弊端,就是按 Tab 键不会有代码提示

以上是关于用 mysql 客户端连接 clickhouse的主要内容,如果未能解决你的问题,请参考以下文章

用 mysql 客户端连接 clickhouse

Using ClickHouse like MySQL by ProxySQL

适用于 Windows 的 ClickHouse MYSQL 驱动程序无法正常工作

Python 连接clickhouse数据库以及新建表结构,csv导入数据

python连接mysql和clickhouse数据库

MySQL,Presto,Hive,ClickHouse的JDBC连接