Open函数只是校验参数格式是否正确,不参与数据库连接
db对象可安全的被 goroutine并发使用 , 并维护自己的空闲连接池, 因此Open函数应该只被调用一次, 很少需要关闭db对象
设置数据库连接的最大连接数 , n>0 并小于最大空闲连接数.会将最大空闲连接数减小到匹配最大开启连接数的限制,如果n<=0 ,不会限制最大开启连接数,默认0 func (db *DB) SetMaxOpenConns(n int) 设置连接池中最大空闲连接数,如果n>最大开启连接数,则新的最大闲置连接数会减小到最大开启连接数的限制 ,如果n<=0 ,不会保留最大空闲连接数 func (db *DB) SetMaxIdleConns(n int)
package main import ( "database/sql" "fmt" "github.com/gin-gonic/gin" _ "github.com/go-sql-driver/mysql" "net/http" ) // 定义全局db变量 var db *sql.DB func main() { router := gin.Default() // 默认路由 err := initDB() if err != nil { fmt.Printf("init db error:%v \n ", err) } else { fmt.Println("连接成功db") } defer db.Close() router.Run() } func initDB() (err error) { dsn := "root:root@tcp(127.0.0.1:3306)/fyouku" // 这里db不要使用:= , 全局变量赋值 , 在main中使用 // 这里不会校验账号密码是否正确 db, err = sql.Open("mysql", dsn) if err != nil { return err } //尝试数据库连接 err = db.Ping() if err != nil { return err } db.SetConnMaxLifetime(time.Second*10)//连接存活最大时间 db.SetMaxIdleConns(200) //最大空闲连接数 db.SetMaxOpenConns(10) // 最大连接数 return nil }
下一个:kafka3.0.0启动异常
热门文章
- 「3月29日」最高速度20.3M/S,2025年Shadowrocket/Clash/V2ray/SSR每天更新免费节点订阅链接
- 「4月25日」最高速度19.9M/S,2025年SSR/V2ray/Shadowrocket/Clash每天更新免费节点订阅链接
- 养猫的人容易得15种病怎么预防传染(养猫的人容易得15种病怎么预防传染病)
- 「4月22日」最高速度19.9M/S,2025年SSR/Clash/V2ray/Shadowrocket每天更新免费节点订阅链接
- 面试问题:SpringMVC的执行流程
- 聊一聊Vue3.2中setup语法糖+volar
- 取消动物防疫收费通知范文(取消动物防疫收费通知范文怎么写)
- 动物疫苗的了解和看法(动物疫苗的了解和看法英语作文)
- 「3月23日」最高速度18.6M/S,2025年V2ray/SSR/Clash/Shadowrocket每天更新免费节点订阅链接
- 动物疫苗管理法律法规最新版本是什么样的(动物疫苗政策)