• 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

    代码示例: 

    1. import (
    2. "database/sql"
    3. "time"
    4. _ "github.com/go-sql-driver/mysql"
    5. )
    6. db, err := sql.Open("mysql", "user:password@/dbname")
    7. if err != nil {
    8. panic(err)
    9. }

    方法介绍:

    db.SetConnMaxLifetime()

    是确保在MySQL服务器,操作系统或其他中间件关闭连接之前,驱动程序安全地关闭连接所必需的。由于某些中间件将空闲连接关闭 5 分钟,因此我们建议将超时时间短于 5 分钟。此设置还有助于负载平衡和更改系统变量。

    db.SetMaxOpenConns()

    强烈建议限制应用程序使用的连接数。没有建议的限制数量,因为它取决于应用程序和MySQL服务器。

    db.SetMaxIdleConns()

    建议设置为 相同(或大于)。当它小于 时,可以比您预期的非常频繁地打开和关闭连接。空闲连接可以通过 关闭。

    db.Ping()

    是进行连接。

    三、数据库连接实例:

    1. package main
    2. import (
    3. "database/sql"
    4. "fmt"
    5. _ "github.com/go-sql-driver/mysql"
    6. )
    7. //定义一个全局对象db
    8. var db *sql.DB
    9. func initDB() (err error) {
    10. dsn:="root:123456@tcp(127.0.0.1:3306)/go?charset=utf8mb4&parseTime=True"
    11. //注意这里不能用:=,我们是给全局变量赋值,然后在main函数中使用全局变量db
    12. db,err=sql.Open("mysql",dsn)
    13. if err!=nil {
    14. return err
    15. }
    16. //尝试与数据库建立链接(校验dsn是否正确)
    17. err=db.Ping()
    18. if err!=nil {
    19. return err
    20. }
    21. return nil
    22. }
    23. func main() {
    24. fmt.Println("hellp")
    25. err := initDB()
    26. if err!=nil {
    27. fmt.Println(err)
    28. }else {
    29. fmt.Println("连接成功!")
    30. }
    31. }

  • 相关阅读:
    Neural Ordinary Differential Equations(NIPS2018)
    ISP屏幕和LCD屏幕的区别,以及AMOLED、Super AMOLED和OLED
    Python的单元测试之unittest
    3D元宇宙虚拟主播引领文旅产业迈向更加美好的未来!
    Java应用生产Full GC或者OOM问题如何定位
    聊一聊容器暂停退出
    Health Kit申请验证有问题?解决方案全解析
    服务器数据恢复-RAID5常见故障的数据恢复方案
    vulnhub之narak
    微信小程序调起微信支付
  • 原文地址:https://blog.csdn.net/m0_51530927/article/details/126180043