Databend官网 :专注于打造全球最强云数仓,弹性、简单、低成本,支持mysql、clickhouse有线连接协议(白话就是可以直接用它们的客户端连接Databend服务)。
Databend默认是使用本地文件系统,可以支持很多知名的OSS,这里我用到了Minio存储容器,所以多了一步Minio的启动。
Minio的使用就不多赘述了,这里我提前打入docker了,详细见Minio官网。
docker ps -a命令查询,如果已经创建了Minio容器,可以直接docker start 容器名 命令来启动。
否则安装Minio容器并配置(详细配置信息见Databend官网)。
./databend-meta -c ./configs/databend-meta.toml > meta.log 2>&1 &
./databend-query -c ./configs/databend-query.toml > query.log 2>&1 &
测试节点是否可用
curl -I http://127.0.0.1:28101/v1/health
curl -I http://127.0.0.1:8081/v1/health
手动太麻烦了,直接上Shell脚本(手动加上执行权限chmod +x xx.sh
),现在我们下载发布版的时候是有自带脚本文件的,这个是我以前写的Shell。
start.sh
path="/usr/bin/databend/bin"
${path}/databend-meta -c ./configs/databend-meta.toml > meta.log 2>&1 &
${path}/databend-query -c ./configs/databend-query.toml > query.log 2>&1 &
stop.sh
# get pid list
ls=`ps -elf | grep databend | head -n 2 | awk '{print $4}'`
# 切割字符串
len=0
for pid in ${ls[*]}
do
pids[len]=$pid
len=`expr $len + 1`
# echo ${pid}
done
# pids数组长度大于1
if [ ${#pids[@]} -gt 1 ]
then
for i in ${pids[*]}
do
kill -9 ${i}
done
echo "databend is stoped"
else
echo "databend no starting"
fi
con_test.sh
echo '----------server-status-------------'
curl -I http://127.0.0.1:8101/v1/health
curl -I http://127.0.0.1:8001/v1/health
echo '----------process-info-------------'
ps -elf | grep databend
mysql -uroot -h 127.0.0.1 -P3307
创建用户并授权:
CREATE USER user1 IDENTIFIED WITH no_password;
GRANT ALL ON *.* TO user1;
如果创建的用户是有密码的连接时会出错(待解决):
CREATE USER user1 IDENTIFIED WITH sha256_password BY '1234';
GRANT ALL ON *.* TO user1;
# 连接时会出现下面的错误,不知道怎么解决,好像主要是服务端的问题
> mysql -uuser1 -p1234 -h 192.168.81.134 -P3307
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1698 (28000): Authenticate failed, user: "user1", auth_plugin: "mysql_native_password"
连接:
mysql -uuser1 -h [ip] -P3307
获取某个database的所有table信息
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = [databaseName] and table_type='BASE TABLE'
获得所有简略的column信息
select column_name,data_type,is_nullable,column_default,table_name from INFORMATION_SCHEMA.COLUMNS;