一、安装
使用 shell 中的 go 工具将软件包安装到自己的GOPATH:
$ go get -u github.com/go-sql-driver/mysql
确保 Git 已安装在自己的机器和系统的 .PATH
二、用法
Go MySQL Driver是Go接口的实现。只需要导入驱动程序,然后就可以使用完整的数据库 API。
使用 as 和有效的 DSN 作为 :数据源名称
最完整的DSN:
username:password@protocol(address)/dbname?param=valueq
其中密码可以包含任何字符,无需转义。
除数据库名称外,所有值都是可选的。因此,最小DSN是:
/dbname
如果不想预先选择数据库,请留空:dbname
/
这与空 DSN 字符串具有相同的效果
需要注意的是:参数区分大小写!
任何 、 或 都被接受代表真正的布尔值。毫不奇怪,false 可以指定为: 、 、 或 .
true
TRUE
True
1
false
FALSE
False
0
代码示例:
import (
"database/sql"
"time"
_ "github.com/go-sql-driver/mysql"
)
db, err := sql.Open("mysql", "user:password@/dbname")
if err != nil {
panic(err)
}
方法介绍:
db.SetConnMaxLifetime()
是确保在MySQL服务器,操作系统或其他中间件关闭连接之前,驱动程序安全地关闭连接所必需的。由于某些中间件将空闲连接关闭 5 分钟,因此我们建议将超时时间短于 5 分钟。此设置还有助于负载平衡和更改系统变量。
db.SetMaxOpenConns()
强烈建议限制应用程序使用的连接数。没有建议的限制数量,因为它取决于应用程序和MySQL服务器。
db.SetMaxIdleConns()
建议设置为 相同(或大于)。当它小于 时,可以比您预期的非常频繁地打开和关闭连接。空闲连接可以通过 关闭。
db.Ping()
是进行连接。
三、数据库连接实例:
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
//定义一个全局对象db
var db *sql.DB
func initDB() (err error) {
dsn:="root:123456@tcp(127.0.0.1:3306)/go?charset=utf8mb4&parseTime=True"
//注意这里不能用:=,我们是给全局变量赋值,然后在main函数中使用全局变量db
db,err=sql.Open("mysql",dsn)
if err!=nil {
return err
}
//尝试与数据库建立链接(校验dsn是否正确)
err=db.Ping()
if err!=nil {
return err
}
return nil
}
func main() {
fmt.Println("hellp")
err := initDB()
if err!=nil {
fmt.Println(err)
}else {
fmt.Println("连接成功!")
}
}