通过mysql操作clickhouse

mysql软件安装

至少需要安装一个mysql客户端,即要有mysql这个命令;也可以直接安装一个mysql数据库,不用可以不启动;

clickhouse服务端配置mysql端口

vim /etc/clickhouse-server/config.xml

<mysql_port>9004</mysql_port>

修改服务器端配置,需要重启clickhouse, 默认日志输出 /var/log/clickhouse-server/clickhouse-server.log

下面这种方式,需要在本地配置mysql,然后本地连接,默认省去的连接主机为localhost

[root@ch2 ~]# mysql --protocol tcp -u default -P 9004
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 0
Server version: 20.3.9.70-ClickHouse 

Copyright (c) 2000, 2018, 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> show databases;
+----------+
| name     |
+----------+
| default  |
| system   |
| test     |
| tutorial |
+----------+
4 rows in set (0.01 sec)
Read 4 rows, 475.00 B in 0.001 sec., 3554 rows/sec., 412.20 KiB/sec.

mysql> use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+------+
| name |
+------+
| test |
+------+
1 row in set (0.01 sec)
Read 1 rows, 26.00 B in 0.001 sec., 771 rows/sec., 19.60 KiB/sec.

同样可以创建表

mysql> create table t1(id String,name String) ENGINE=TinyLog;
Query OK, 0 rows affected (0.01 sec)

mysql> insert into t1 values('a01','');
Query OK, 1 row affected (0.00 sec)
Read 1 rows, 21.00 B in 0.004 sec., 275 rows/sec., 5.64 KiB/sec.

mysql> select * from t1;
+------+------+
| id | name |
+------+------+
| a01 | |
+------+------+
1 row in set (0.01 sec)
Read 1 rows, 21.00 B in 0.002 sec., 525 rows/sec., 10.78 KiB/sec.

密码配置

为了兼容mysql客户端,建议clickhouse使用sha1加密算法

生成密码,这个生成命令在 /etc/clickhouse-server/users.xml 注释部分,是官方给出的

# PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD"  
> | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'
yOBuWUzN
1caa12e10ba19388e98b0964eb25e93128fd0ace  

删除下面的标签

<password></password>

添加新标签

<password_double_sha1_hex>1caa12e10ba19388e98b0964eb25e93128fd0ace</password_double_sha1_hex>

再次连接,不需要重启clickhouse

mysql --protocol tcp -u default -P 9004 --password=yOBuWUzN

去掉密码也可以连接

mysql --protocol tcp -u default -P 9004

原文地址:https://www.cnblogs.com/perfei/p/13434911.html