ZBLOG

golang 1.20 mysql8.0 认证插件

在使用 Go 1.20 连接 MySQL 8.0 数据库时,默认的认证插件已经发生了改变。MySQL 8.0 引入了一个新的默认身份验证插件,称为 caching_sha2_password

要在 Go 中使用该认证插件连接 MySQL 8.0,请确保你的 Go 程序依赖于 github.com/go-sql-driver/mysql 包,并按照以下方式设置连接字符串:

import (
    "database/sql"
    _ "github.com/go-sql-driver/mysql"
)

func main() {
    // 创建数据库连接
    db, err := sql.Open("mysql", "user:password@tcp(localhost:3306)/dbname?tls=false")

    if err != nil {
        panic(err.Error())
    }
    
    defer db.Close()

    // 连接数据库
    err = db.Ping()
    
    if err != nil {
        panic(err.Error())
    }

    // 执行查询或其他操作
}

请将 "user:password@tcp(localhost:3306)/dbname" 替换为实际的数据库用户名、密码、主机和数据库名称。

注意:由于新版本的 MySQL 客户端默认启用了 SSL/TLS 加密通信,但是 github.com/go-sql-driver/mysql 目前还不支持与 MySQL 8.0 使用 TLS 连接。因此,在连接字符串末尾添加 ?tls=false 可以禁用 TLS 连接。如果需要启用 TLS 连接,请考虑使用其他第三方 MySQL 驱动程序,如 github.com/go-sql-driver/mysql 的 fork 版本 github.com/go-sql-driver/mysql@v1.7.0,或者等待原始驱动程序的更新。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=11319

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?