golang中mysql建立连接超时时间timeout


本文摘自网络,作者hikerwu,侵删。

本质上是dsn支持超时设置,不需要golang支持。

代码

// simple.go

package main

import (
        "database/sql"
        "log"
        "time"

        _ "github.com/go-sql-driver/mysql"
)

var DB *sql.DB
var dataBase = "root:Aa123456@tcp(192.168.0.101:3306)/?timeout=5s&readTimeout=6s"

func mysqlInit() {
        var err error
        DB, err = sql.Open("mysql", dataBase)
        if err != nil {
                log.Fatalln("open db fail:", err)
        }

        DB.SetMaxOpenConns(3)
        DB.SetMaxIdleConns(3)
}

func main() {
        mysqlInit()

        for {
                log.Println("start")
                execSql()
                time.Sleep(3*time.Second)
        }
}

func execSql() {
        var value int
        err := DB.QueryRow("select 1").Scan(&value)
        if err != nil {
                log.Println("query failed:", err)
                return
        }

        log.Println("value:", value)
}


相关阅读 >>

使用gin封装一个web脚手架(五):实现session(上)

手撸Golang 结构型设计模式 组合模式

Golang slice如何拷贝

Golang type什么意思

Go - 实现项目内链路追踪(二)

如何升级基础架构

Golang中如何正确地使用database/sql包访问数据库

手撸Golang 架构设计原则 迪米特法则

Go-carbon 1.4.0 版本发布,新增获取世纪和季度开始和结束时间方法

Golang中“=”与“:=”的区别

更多相关阅读请进入《Go》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...