ClickHouse创建账号和连接测试

在之前搭建ClickHouse的时候,把账户相关的去掉了,所以登录和连接的时候是不需要账号密码的,但是实际项目中,肯定是需要根据需要创建账号。

一,创建账号

1,进入到 /etc/clickhouse-server, 编辑users.xml

找到users这个标签对, 这个里面子标签就是用户名。比如clickhouse的默认用户default,默认是没有密码的,如果需要密码,可以在<password></password>标签里输入密码。

修改之后重启服务

systemctl restart clickhouse-server.service

下面这个access_management开启之后,就可以使用default账号进行创建账号和授权给其他账号。

2,连接clickhouse,执行sql添加账号,并授权

clickhouse-client -m --password

再输入上面这个default账号的密码
-- 创建用户clickhouse

CREATE USER clickhouse HOST IP '0.0.0.0' IDENTIFIED WITH sha256_password BY 'clickhouse';

其中IP '0.0.0.0'表示允许使用clickhouse用户从任何一台主机上登录clickhouse。

-- 给用户授权

GRANT ALL ON *.* TO clickhouse WITH GRANT OPTION;

-- 查看用户权限

show create user clickhouse;

-- 查看授权

show grants for clickhouse;

3, 另外一种方式创建用户

直接在上面那个users.xml里添加用户也是可以的。

在<users></users>标签中间添加

<clickhouse>

<password>clickhouse</password>

<clickhouse>

注: 这里是创建了一个账号clickhouse,密码是clickhouse。 你可以根据你的需要去创建账号。

完成保存,之后重启一下服务

二,连接ClickHouse

1,使用clickhouse账户登录

clickhouse-client -m --user clickhouse --password clickhouse

2,查看数据库

show databases;

3, 创建数据库,并切换数据库

登录之后,默认使用的schema是default

--创建数据库

CREATE DATABASE IF NOT EXISTS account;

--切换数据库

use account;

4,创建表

CREATE TABLE student

(

`StudentID` UInt32,

`StudentName` String,

`Address` String,

`Grade` Int8,

`Age` Int8,

`Gender` UInt8,

`StartTime` DateTime

)

ENGINE = CollapsingMergeTree(Grade)

PARTITION BY toYYYYMM(StartTime)

ORDER BY (StudentID);

5,查询表

show tables

6,删除表

drop table student1;

语法和Mysql相似。

三,代码中连接ClickHouse

1,导入pom依赖

XML 复制代码
<!-- ClickHouse Start -->
<dependency>
    <groupId>ru.yandex.clickhouse</groupId>
    <artifactId>clickhouse-jdbc</artifactId>
    <version>0.1.40</version>
</dependency>
<!-- ClickHouse End -->

2,加载驱动,插入数据,查询数据

java 复制代码
package com.x.bigdata;

import java.sql.*;

public class TestConnectionClickHouse {
    private static Connection connection = null;
    static {
        try {
            Class.forName("ru.yandex.clickhouse.ClickHouseDriver");// 驱动包
            String url = "jdbc:clickhouse://x.x.x.x:8123/account";// url路径
            String user = "clickhouse";// 账号
            String password = "clickhouse";// 密码
            connection = DriverManager.getConnection(url, user, password);
        }catch (Exception e){
            e.printStackTrace();
        }
    }

    public static void main(String[] args) throws SQLException {
        insert();
        select();
        if (connection != null){
            connection.close();
        }
    }

    /**
     * 插入数据
     * @throws SQLException
     */
    public static void insert() throws SQLException {
        PreparedStatement prepareStatement = connection.prepareStatement("insert into account.student values (?,?,?,?,?,?,?)");
        prepareStatement.setInt(1,1002);
        prepareStatement.setString(2,"小猫猫");
        prepareStatement.setString(3,"中国-贵州-贵阳");
        prepareStatement.setInt(4,1);// 年级
        prepareStatement.setInt(5,21);
        prepareStatement.setInt(6,1); // 1:男,0:女
        prepareStatement.setDate(7,new Date(2020,12,22));
        prepareStatement.executeUpdate();
        if (prepareStatement != null){
            prepareStatement.close();
        }
    }

    /**
     * 查询数据
     * @throws SQLException
     */
    public static void select() throws SQLException {
        PreparedStatement statement = connection.prepareStatement("select * from account.student");
        ResultSet resultSet = statement.executeQuery();
        while (resultSet.next()){
            int studentID = resultSet.getInt(1);
            String studentName = resultSet.getString(2);
            System.out.println(studentID + "," + studentName);
        }
    }
}

后续就是集成到SpringBoot项目中。。。

相关推荐
Sayai1 天前
ClickHouse WITH FILL 实战:监控大屏时间序列补零,附多粒度指标表与物化视图级联设计
大数据·运维·数据仓库·clickhouse·物化视图
l1t5 天前
DeepSeek总结的clickhouse的二进制文件自解压机制
clickhouse
l1t6 天前
DeepSeek总结的pg_clickhouse 与 chdb 更新:编码、嵌套与类型
数据库·clickhouse·postgresql
拔剑纵狂歌9 天前
ClickHouse system.query_log 字段详解与排障实践
后端·clickhouse·1024程序员节
SelectDB技术团队9 天前
Apache Doris 高性能 Open Lake Variant 读写技术解析(含对比数据)
数据结构·数据库·clickhouse·日志·apache doris·selectdb·湖仓架构升级
SelectDB技术团队9 天前
ClickHouse 存日志的能力边界:并发、检索与 trace 回放的实测对照
数据结构·数据库·clickhouse·日志分析·apache doris·日志存储
SelectDB技术团队9 天前
Agent Trace 数据底座建设:宽表建模、全文检索与成本聚合的配置与验证步骤
大数据·python·clickhouse·elk·elasticsearch·全文检索·复杂查询
此时不提桶,更待何时10 天前
05-03-B-ClickHouse与OLAP面试与生产事故实战
clickhouse·面试·nosql
SelectDB技术团队10 天前
ELK 太占磁盘、ES 总报写入拒绝:从归因到可执行的优化清单
大数据·clickhouse·elk·elasticsearch·全文检索·复杂查询·实时更新
frjc10 天前
数据库选型:如何从众多数据库中选出最理想的那一个
redis·mysql·clickhouse·elasticsearch