【发布时间】:2021-12-02 13:56:14
【问题描述】:
我遵循本教程https://golang.org/doc/tutorial/database-access,但我不知道如何在代码中连接到 mysql,只是为了知道我完成了所有这些: 为您的代码创建一个文件夹, 建立数据库, 查找并导入数据库驱动程序
我在这一步遇到的问题Get a database handle and connecthttps://golang.org/doc/tutorial/database-access#get_handle
代码
// Capture connection properties.
cfg := mysql.Config{
User: "hashem",
Passwd: "hashem",
Net: "tcp",
Addr: "127.0.0.1:3306",
DBName: "recordings",
AllowNativePasswords: true,
}
// Get a database handle.
println(cfg.FormatDSN())
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!")
在这段代码中它应该打印Connected!,但它总是返回错误Error 1045: Access denied for user 'hashem'@'localhost' (using password: YES)用户名和密码以及本地主机我认为它是正确的。只是想知道我什么时候在终端sudo mysql -u root -p登录mysql并要求输入linux密码,然后输入hashem然后要求输入mysql密码,我没有在这里输入任何东西,它的登录很好,我可以做每一个就像选择和插入一样。但在代码中我无法登录
【问题讨论】:
-
使用
mysqlcli 程序时,您使用-u root登录。在 Go 中,您尝试使用User: "hashem"登录。它们明显不同。您是否能够使用mysqlcli 程序使用-u hashem进行连接?如果没有,那么您已经得到了答案。 -
@mkopriva 是的,我尝试但不工作
-u hashem:hashem@tcp(127.0.0.1:3306)/recordings?checkConnLiveness=false&maxAllowedPacket=0和错误Error 1045: Access denied for user '-u hashem'@'localhost' (using password: YES)