栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

Go使用clickhouse-go操作本地ClickHouse i/o timeout 问题小结

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Go使用clickhouse-go操作本地ClickHouse i/o timeout 问题小结

问题描述

最近在使用 "github.com/ClickHouse/clickhouse-go" 这个库操作ClickHouse,为了验证程序本地通过docker启了一个ClickHouse,并将端口8123映射出来。

参考clickhouse-go的github上example编写程序,运行时一直报错:

[clickhouse][dial] secure=false, skip_verify=false, strategy=random, ident=1, server=0 -> [::1]:8123
[clickhouse][connect=1][hello] -> Golang SQLDriver 1.1.54213
[clickhouse][connect=1][connect] read error: read tcp [::1]:49513->[::1]:8123: i/o timeout
runtime error: invalid memory address or nil pointer dereference

原因

程序中ClickHouse端口访问错误。

    ……	
    fmt.Println("Clickhouse初始化...")
	connect, err := sql.Open("clickhouse", "tcp://localhost:8123?debug=true")
	if err != nil {
		log.Fatal(err)
	}
    ……

ClickHouse提供两个网络端口:

  • HTTP 默认8123
  • TCP 默认9000

而我之前用Java开发时,官方的JDBC使用的就是8123端口,也是基于HTTP实现的。对clickhouse不熟悉因此访问了错误的端口。

解决

重新启动clickhouse容器,并将9000端口暴露出来,go程序中地址也改成 "tcp://localhost:9000?debug=true"

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/907677.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号