首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL显示"Error 1045:用户'root'@'localhost‘(使用密码:YES)拒绝访问“。当我尝试使用Golang包访问它时

MySQL显示"Error 1045:用户'root'@'localhost‘(使用密码:YES)拒绝访问“。当我尝试使用Golang包访问它时
EN

Stack Overflow用户
提问于 2022-11-16 10:17:21
回答 1查看 40关注 0票数 1

这是我使用的app.go文件

代码语言:javascript
复制
package config

import (
    "fmt"
    "log"

    "github.com/jinzhu/gorm"
    _ "github.com/jinzhu/gorm/dialects/mysql"
)

var db *gorm.DB

func Connect() {
    dsn := "<root>:<password>@/simplerest?charset=utf8&parseTime=True&loc=Local"
    d, err := gorm.Open("mysql", dsn)
    if err != nil {
        panic(err)
    } else {
        log.Fatal("Connection established")
    }

    fmt.Printf("Type : %T", d)
    db = d
}

func GetDB() *gorm.DB {
    return db
}

当我试图运行我的app.go文件时,我总是会收到错误

代码语言:javascript
复制
panic: Error 1045: Access denied for user 'root'@'localhost' (using password: YES)

goroutine 1 [running]:
github.com/bedLad/go-bookstore/pkg/config.Connect()
        /home/root/development/go-code/go-bookstore/pkg/config/app.go:17 +0x12a
github.com/bedLad/go-bookstore/pkg/models.init.0()
        /home/root/development/go-code/go-bookstore/pkg/models/book.go:22 +0x19
exit status 2

我可以通过我的终端使用命令mySQL访问mysql -u root -p,所以密码根本不是问题。

EN

回答 1

Stack Overflow用户

发布于 2022-11-16 10:55:43

将dsn格式化如下:

代码语言:javascript
复制
 dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s", user, password, hostname, port, dbname) + "?charset=utf8mb4&parseTime=True&loc=Local"
  db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
  if err != nil {
      fmt.Println(err)
      return
  } else {
    fmt.Println("Connected")
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74458740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档