Gin连接mysql

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 }