golang连接MySQL数据库
安装配置mysql驱动
安装驱动
go get -u github.com/go-sql-driver/mysql
初始化模块
go mod init 模块名称
执行go mod tidy
go mod tidy
导入驱动
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
获得数据库连接
获得连接
package main
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
"time"
)
func main() {
db, err := sql.Open("mysql", "username:password@/dbname")
if err != nil {
panic(err)
}
print(db)
// 最大连接时长
db.SetConnMaxLifetime(time.Minute * 3)
// 最大连接数
db.SetMaxOpenConns(10)
// 空闲连接数
db.SetMaxIdleConns(10)
}
初始化连接
Open函数可能只是验证其参数格式是否正确,实际上并不创建与数据库的连接。如果要检查数据源的名称是否真实有效,应该调用Ping方法。
返回的DB对象可以安全地被多个goroutine并发使用,并且维护其自己的空闲连接池。因此,Open函数应该仅被调用一次,很少需要关闭这个DB对象。
package main
import (
"fmt"
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
// 定义一个全局对象db
var db *sql.DB
// 定义一个初始化数据库的函数
func initDB() (err err