ClickHouse创建账号和连接测试

news/2024/11/8 15:48:37 标签: 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依赖

<!-- ClickHouse Start -->
<dependency>
    <groupId>ru.yandex.clickhouse</groupId>
    <artifactId>clickhouse-jdbc</artifactId>
    <version>0.1.40</version>
</dependency>
<!-- ClickHouse End -->

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

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项目中。。。


http://www.niftyadmin.cn/n/5744094.html

相关文章

若依入门案例

若依&#xff08;RuoYi&#xff09;框架是一个基于Java的开源企业级快速开发框架&#xff0c;主要用于构建信息管理系统。它结合了多种前端和后端技术&#xff0c;提供了高效的开发工具&#xff0c;并具备以下主要功能&#xff1a; 一、后端功能 技术选型&#xff1a;若依后端…

【深度学习】多分类任务评估指标sklearn和torchmetrics对比

【深度学习】多分类任务评估指标sklearn和torchmetrics对比 说明sklearn代码torchmetrics代码两个MultiClassReport类的对比分析1. 代码结构与实现方式2. 数据处理与内存使用3. 性能与效率 二分类任务评估指标1. 准确率&#xff08;Accuracy&#xff09;2. 精确率&#xff08;P…

(三)最小梯度平滑预处理下的K-Means的道路分割实验(附资源)

一、实验目的 1、实验目标 使用C均值算法或者相应的改进算法&#xff0c;对数据进行聚类分析&#xff0c;并思考如何自动确定道路区域对应的是聚类后形成的若干类别中的哪个类别。 尝试对初值、对代表点的选取以及分类方法进行改变&#xff0c;对改变前后结果的变化进…

解决CentOS 7环境下VNC出现乱码问题

背景 在 CentOS 7 操作系统下使用 VNC&#xff08;虚拟网络计算&#xff09;进行远程连接服务器操作时&#xff0c;可能会遇到乱码问题&#xff0c;这种情况通常是由字符编码设置不正确导致的。 解决方案 通过修改 VNC 服务器配置文件可解决乱码问题&#xff0c;步骤如下&am…

数据分析:宏基因组DESeq2差异分析筛选差异物种

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍原理:计算步骤:结果:加载R包准备画图主题数据链接导入数据Differential abundance (No BP vs 2BP TA)构建`countData`矩阵过滤低丰度物种构建DESeq数据对象DESeq2差异分析画图Di…

使用Python将EPUB电子书网文主角换成自己

文章目录 使用Python将EPUB电子书网文主角换成自己EPUB电子书准备工作操作步骤Python实现代码代码解析 使用Python将EPUB电子书网文主角换成自己 最近看网文小说&#xff0c;想到一个有意思的东西&#xff0c;为什么不把网文主角换成自己的名字&#xff0c;这样看起来不更有沉…

notebook 远程访问配置(python3.10)

一、生成密码 jupyter notebook password二、生成默认配置文件 jupyter notebook --generate-config三、修改配置文件 vim ~/.jupyter/jupyter_notebook_config.py ## 修改配置内容 c.ServerApp.ip * c.ServerApp.port 8888 ## 修改成将之前生成的密文 c.ServerApp.passwo…

Go语言的内置容器

文章目录 一、数组数组的定义数组声明数组特点数组元素修改 二、切片切片声明基于数组创建切片使用make()函数构造切片使用append()为切片动态添加元素\使用copy()复制新的切片数组与切片相互转换 三、Map映射Map定义使用make()函数创建map用切片作为map的值使用delete()函数删…