golang的mysql数据库连接

一、安装

使用 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("连接成功!")
	}
}

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大熊的饲养员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值