mysql 用户'root'@'localhost'的Golang访问被拒绝

x6h2sr28  于 2023-02-18  发布在  Mysql
关注(0)|答案(1)|浏览(200)
    • TLDR;**尝试使用Golang访问数据库时出错

我正在尝试使用here示例连接到我的localhost数据库。连接到数据库的go代码可以在下面找到。

func main() {
    // Capture connection properties.
    cfg := mysql.Config{
        User:   os.Getenv("DBUSER"),
        Passwd: os.Getenv("DBPASS"),
        Net:    "tcp",
        Addr:   "127.0.0.1:3306",
        DBName: "someDB",
    }

    // Get a database handle.
    var err error
    db, err = sql.Open("mysql", cfg.FormatDSN())
    if err != nil {
        log.Fatal(err)
    }

    pingErr := db.Ping()
    if pingErr != nil {
        log.Fatal(pingErr)
    }
    fmt.Println("Connected!")

}

我看到此输出

✗ go run main.go
2023/02/17 00:10:35 Error 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

我试过:

  • 确认DBUSERDBPASS设置为预期值
  • 我能够mysql -u root -p和连接到数据库没有任何问题。
ee7vknir

ee7vknir1#

我的问题的解决方案是通过更新我的密码来解决的,我的密码是以@开头的,在我更新密码之后。

mysql -u root -h localhost -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'some-new-password';
mysql> FLUSH PRIVILEGES;

现在,当我运行代码时,我看到Connected!

相关问题