更新时间:2023-11-21 gmt 08:00
通过go语言连接实例-凯发k8国际娱乐官网入口
本章节介绍了通过go语言连接geminidb influx实例的方法。
前提条件
- 获取ssl默认证书,具体操作请参见。
- 配置ccm私有证书,具体操作请参见。
- 获取客户端相关代码,请自主从下载。
使用非ssl方式连接实例的示例代码
package main import ( "fmt" _ "github.com/influxdata/influxdb1-client" // this is important because of the bug in go mod client "github.com/influxdata/influxdb1-client/v2" ) func main(){ c, err := client.newhttpclient(client.httpconfig{ addr: "http://ip:port", username: "******", password: "******", }) if err != nil { fmt.println("error creating influxdb client: ", err.error()) } q := client.newquery("select * from cpu","db0","ns") if response, err := c.query(q); err == nil && response.error() == nil { fmt.println("the result is: ",response.results) } }
使用默认ssl证书连接实例的示例代码
package main import ( "fmt" _ "github.com/influxdata/influxdb1-client" // this is important because of the bug in go mod client "github.com/influxdata/influxdb1-client/v2" ) func main(){ c, err := client.newhttpclient(client.httpconfig{ addr: "https://ip:port", username:"******", password:"******", insecureskipverify: true, // true表示不验证服务端的信息,可能存在被攻击的风险,建议设为false,具体请参见使用ccm私有证书连接实例的示例代码。 }) if err != nil { fmt.println("error creating influxdb client: ", err.error()) } q := client.newquery("select * from cpu","databases","ns") if response, err := c.query(q); err == nil && response.error() == nil { fmt.println(response.results) } }
使用ccm私有证书连接实例的示例代码
package main import ( "fmt" "io/ioutil" "crypto/tls" "crypto/x509" _ "github.com/influxdata/influxdb1-client" // this is important because of the bug in go mod client "github.com/influxdata/influxdb1-client/v2" ) func main(){ pool := x509.newcertpool() cacertpath := "/data/ca/agent/ca.crt" cacrt, err := ioutil.readfile(cacertpath) if err != nil { fmt.println("readfile err:", err) return } pool.appendcertsfrompem(cacrt) // 此处是将ca.crt证书内嵌到程序中,也可以使用sudo cp {client}/ca.crt /etc/ssl/certs命令将证书添加到本机上。 c, err := client.newhttpclient(client.httpconfig{ addr: "https://ip:port", username: "******", password: "******", tlsconfig: &tls.config{ rootcas: pool, insecureskipverify: false, // false表示需要校验服务端的证书。 }, }) if err != nil { fmt.println("error creating influxdb client: ", err.error()) } q := client.newquery("select * from cpu","database","ns") if response, err := c.query(q); err == nil && response.error() == nil { fmt.println("the result is: ",response.results) } }
父主题:
意见反馈
文档内容是否对您有帮助?
提交成功!非常感谢您的反馈,我们会继续努力做到更好!
您可在查看反馈及问题处理状态。
系统繁忙,请稍后重试
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨