文章目录
- 环境
- 文档用途
- 详细信息
环境
系统平台:Linux x86-64 Red Hat Enterprise Linux 7
版本:4.5
文档用途
golang连接安全版sm3认证加密数据库,驱动程序详见附件。
详细信息
1.下载Linux golang安装包 go1.17.3.linux-amd64.tar.gz
1.1. 解压安装包
tar xvf go1.17.3.linux-amd64.tar.gz -C /opt/apps/go
1.2. 创建路径
mkdir /opt/dev/go -p
1.3. 添加环境变量
vim ~/.bashrc
export GOROOT=/opt/apps/go
export PATH=$PATH:/opt/apps/go/bin
export GOPATH=/opt/dev/go
source ~/.bashrc
2.将解压后的pq目录放到如下路径
mkdir /opt/dev/go/src/github.com/lib/pq
3.测试:将如下代码保存为go文件执行
package main
import (
"database/sql"
"fmt"
_ "github.com/lib/pq"
)
const (
host = "x.x.21.138"
port = 5871
user = "test"
password = "hg123456"
dbname = "test"
)
func connectDB() *sql.DB{
psqlInfo := fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s sslmode=disable",host, port, user, password, dbname)
db, err := sql.Open("postgres", psqlInfo)
if err != nil {
panic(err)
}
err = db.Ping()
if err != nil {
panic(err)
}
fmt.Println("Successfully connected!")
return db
}
func query(db *sql.DB){
var name string
rows,err:=db.Query("select '数据库版本:['||version()||']' as name")
if err!= nil{
fmt.Println(err)
}
defer rows.Close()
for rows.Next(){
err:= rows.Scan(&name)
if err!= nil{
fmt.Println(err)
}
}
err = rows.Err()
if err!= nil{
fmt.Println(err)
}
fmt.Println(name)
}
func main() {
db:=connectDB()
query(db)
}
4.运行结果