【Go】Golang连接数据库使用HTTP协议


离开你是傻是对是错

是看破是软弱

这结果是爱是恨或者是什么

如果是种解脱

怎么会还有眷恋在我心窝

那么爱你为什么

🎵 黄品源/莫文蔚《那么爱你为什么》


复制代码
package main

import (
    "context"
    "fmt"
    "log"
    "time"

    "github.com/ClickHouse/clickhouse-go/v2"
)

func main() {
    // 确保使用 HTTP 协议和 8123 端口
    conn, err := clickhouse.Open(&clickhouse.Options{
        Protocol: clickhouse.HTTP,  // 使用 HTTP 协议
        Addr:     []string{"192.168.2.202:8123"},  // 确保使用 HTTP 端口 8123
        Auth: clickhouse.Auth{
            Database: "shujujiance",  // 数据库名称
            Username: "default",      // 用户名
            Password: "",             // 密码
        },
        DialTimeout:     10 * time.Second,
        MaxOpenConns:    5,
        MaxIdleConns:    5,
        ConnMaxLifetime: time.Hour,
    })

    if err != nil {
        log.Fatalf("Failed to create connection: %v", err)
    }

    // Ping ClickHouse 服务器,确保连接成功
    ctx := context.Background()
    if err := conn.Ping(ctx); err != nil {
        log.Fatalf("Failed to ping ClickHouse: %v", err)
    }

    fmt.Println("Connected to ClickHouse via HTTP!")

    // 执行一个简单的查询
    rows, err := conn.Query(ctx, "SELECT number FROM system.numbers LIMIT 5")
    if err != nil {
        log.Fatalf("Failed to execute query: %v", err)
    }
    defer rows.Close()

    // 遍历查询结果
    for rows.Next() {
        var number uint64
        if err := rows.Scan(&number); err != nil {
            log.Fatalf("Failed to scan result: %v", err)
        }
        fmt.Printf("Number: %d\n", number)
    }

    // 检查是否有错误
    if err := rows.Err(); err != nil {
        log.Fatalf("Error during result iteration: %v", err)
    }

    fmt.Println("Query executed successfully")
}
相关推荐
扑火的小飞蛾4 分钟前
PostgreSQL 16.1 安装指南
数据库·postgresql
大猫子的技术日记4 分钟前
Redis 快速上手:5 分钟掌握核心能力
数据结构·数据库·redis·缓存·持久化·pub/sub
panzer_maus6 分钟前
Redis介绍(4)-认识Redis的事务
数据库·redis·缓存
zgl_200537797 分钟前
源代码:ZGLanguage 解析SQL数据血缘 之 显示 UPDATE SQL 结构图
大数据·数据库·数据仓库·hadoop·数据治理·sql解析·数据血缘
Jan123.9 分钟前
数据库性能优化实战:从索引到SQL的全维度进阶
数据库·sql·性能优化
翼龙云_cloud12 分钟前
亚马逊云渠道商:RDS 三大数据库引擎深度对比 MySQL/PostgreSQL/SQL Server 如何选?
数据库·mysql·postgresql·aws
言之。16 分钟前
【2025年度】编程大模型对比与总结
数据库
麦聪聊数据17 分钟前
金融级数据库运维的“零信任”实践:如何在合规与效率间寻找平衡点?
运维·数据库·后端·sql·金融
全栈小518 分钟前
【数据库】Oracle数据库迁移的深层痛点:兼容性、成本与隐性挑战
数据库·oracle
人道领域38 分钟前
javaWeb从入门到进阶(MYSQL)
数据库·mysql·oracle