文章目录


原生 sql 连接数据库

func main() {
// 账号
username := "root"
// 密码
password := "123456"
// mysql 服务地址
host := "127.0.0.1"
// 端口
port := 3306
// 数据库名
Dbname := "Dbname"

// 拼接 mysql dsn,即拼接数据源,下方 {} 中的替换参数即可
// {username}:{password}@tcp({host}:{port})/{Dbname}?charset=utf8&parseTime=True&loc=Local&timeout=10s&readTimeout=30s&writeTimeout=60s
// timeout 是连接超时时间,readTimeout 是读超时时间,writeTimeout 是写超时时间,可以不填
dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8&parseTime=True&loc=Local", username, password, host, port, Dbname)
// 连接 mysql
db, err = sql.Open("mysql", dsn)
if err != nil {
panic("数据库连接失败, error" + err.Error())
}
}

使用 gorm 连接数据库

func main() {
// 账号
username := "root"
// 密码
password := "123456"
// mysql 服务地址
host := "127.0.0.1"
// 端口
port := 3306
// 数据库名
Dbname := "Dbname"

// 拼接 mysql dsn,即拼接数据源,下方 {} 中的替换参数即可
// {username}:{password}@tcp({host}:{port})/{Dbname}?charset=utf8&parseTime=True&loc=Local&timeout=10s&readTimeout=30s&writeTimeout=60s
// timeout 是连接超时时间,readTimeout 是读超时时间,writeTimeout 是写超时时间,可以不填
dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8&parseTime=True&loc=Local", username, password, host, port, Dbname)
// 连接 mysql
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
panic("数据库连接失败, error" + err.Error())
}
}