环境
go version:go1.14.4
go-mysql-driver:github.com/go-sql-driver/mysql
首先使用go mod init初始化项目的模块文件并做相关操作,关于go module可详见此链接
go测试Mysql连接
声明,以下代码中引用自博客:https://blog.csdn.net/naiwenw/article/details/79281220
- import相关依赖:
import (
"database/sql"
_"github.com/go-sql-driver/mysql"
)
备注:database/sql提供一些操作SQL数据库的接口,它必须与某特定数据库的driver一起使用,第二项即引入mysql的drive。github.com/go-sql-driver/mysql前的下划线代表只是调用包的init函数,因为github.com/go-sql-driver/mysql只是作为驱动,我们不会调用它的函数,所以加下划线不会提示包未引用的错误
- 本地开启数据库,使用代码测试连通性
定义相关常量:
const (
userName = "root" //登录Mysql的用户名
password = "passwd" //对应用户名的密码
ip = "127.0.0.1" //ip地址
port = "3306" //端口
dbName = "dbName" //数据库名字
)
创建一个DB对象
var DB *sql.DB
将DB变量与数据库关联
func InitDB() {
//构建连接:"用户名:密码@tcp(IP:端口)/数据库?charset=utf8"
path := strings.Join([]string{
userName, ":", password, "@tcp(",ip, ":", port, ")/", dbName, "?charset=utf8"}, "")
//打开数据库,前者是驱动名,所以要导入: _ "github.com/go-sql-driver/mysql"
DB, _ = sql.Open("mysql", path)
//设置数据库最大连接数
DB.SetConnMaxLifetime(100)
//设置上数据库最大闲置连接数
DB.SetMaxIdleConns(10)
//验证连接
if err := DB.Ping(); err != nil{
fmt.Println("opon database fail")
return
}
fmt