我试图连接数据库,我没有设置密码的数据库,我在密码字段中留空。但它没有连接并显示错误connector.go:95: could not use requested auth plugin 'mysql_native_password': this user requires mysql native password authentication.
。此外,我使用phpmyadmin作为数据库,所以如何连接这里是我的代码
package main
import (
"database/sql"
"fmt"
"log"
"github.com/go-sql-driver/mysql"
)
var db *sql.DB
func main() {
// Capture connection properties.
cfg := mysql.Config{
User: "root",
Passwd: "",
Net: "tcp",
Addr: "127.0.0.1:3306",
DBName: "recordings",
}
// 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!")
}
3条答案
按热度按时间blpfk2vs1#
这看起来很像来自Tutorial: Accessing a relational database的代码,不幸的是它不能工作。你需要指定
AllowNativePasswords: true
才能工作。默认值是true
,但只有当你使用NewConfig()
而不是自己创建Config
结构体时,才会应用默认值。但这也可以工作:lsmepo6l2#
尝试在数据库中将root用户的身份验证插件更改为mysql_native_password。有关here的更多信息
qvsjd97n3#
这段代码来自Go教程。它不适用于默认代码。您必须在config中添加一个值,即
AllowNativePasswords: true,
你很好,去连接!