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)
}


相关阅读 >>

一个守护进程执行的问题

07 Golang值类型——数组

Golang中的map是指针吗

Go-carbon 1.3.1 版本发布,新增 diffforhumans() 方法和多语言支持

Golang使用kafka报错c.client.config.config.consumer.offsets.commitinterval undefined问题

介绍Golang工具之present

Golang 架构设计原则 接口隔离原则

手撸Golang 创建型设计模式 单例模式

Golang官方嵌入文件到可执行程序

一文搞懂 Go 超时控制

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




打赏

取消

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

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

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

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

评论

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