最近在使用 "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 默认8123TCP 默认9000而我之前用Java开发时,官方的JDBC使用的就是8123端口,也是基于HTTP实现的。对clickhouse不熟悉因此访问了错误的端口。
解决重新启动clickhouse容器,并将9000端口暴露出来,go程序中地址也改成 "tcp://localhost:9000?debug=true"
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)