在GoLang的不同处理程序上全局共享MySQL驱动程序,可以通过以下步骤实现:
go get -u github.com/go-sql-driver/mysql
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
var db *sql.DB
func init() {
// 初始化数据库连接池
var err error
db, err = sql.Open("mysql", "username:password@tcp(hostname:port)/database")
if err != nil {
panic(err.Error())
}
// 设置最大连接数
db.SetMaxOpenConns(10)
// 设置最大空闲连接数
db.SetMaxIdleConns(5)
// 检查连接是否有效
err = db.Ping()
if err != nil {
panic(err.Error())
}
}
在上述代码中,需要将username
、password
、hostname
、port
和database
替换为实际的MySQL数据库连接信息。
func someHandler(w http.ResponseWriter, r *http.Request) {
// 从连接池中获取连接
conn := db.Conn()
defer conn.Close()
// 执行数据库操作
// ...
}
在上述代码中,db.Conn()
方法从连接池中获取一个连接,defer conn.Close()
用于在处理程序执行完毕后释放连接。
通过以上步骤,可以在GoLang的不同处理程序上全局共享MySQL驱动程序。这样可以避免在每个处理程序中重复创建和关闭数据库连接,提高了数据库访问的效率。
推荐的腾讯云相关产品:腾讯云数据库MySQL。腾讯云数据库MySQL是一种可扩展、高可用的关系型数据库服务,提供了全球部署、自动备份、监控报警等功能,适用于各种规模的应用场景。
产品介绍链接地址:腾讯云数据库MySQL
领取专属 10元无门槛券
手把手带您无忧上云