var*_*egi 16 mysql authentication authorization go
我尝试连接数据库,但我没有为数据库设置密码,我在密码字段中将其留空。但它没有连接并显示错误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!")
}
Run Code Online (Sandbox Code Playgroud)
小智 54
这看起来很像教程:访问关系数据库中的代码,不幸的是它不起作用。您需要指定AllowNativePasswords: true它才能工作。该值是true默认值,但仅当您使用NewConfig()而不是Config自己创建结构时才应用默认值。但这也有效:
cfg := mysql.Config{
User: "root",
Passwd: "",
Net: "tcp",
Addr: "127.0.0.1:3306",
DBName: "recordings",
AllowNativePasswords: true,
}
Run Code Online (Sandbox Code Playgroud)