使用 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 可以指定为: 、 、 或 .
trueTRUETrue1falseFALSEFalse0
代码示例:
- 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("连接成功!")
- }
- }