package main import ( "gorm.io/driver/mysql" "gorm.io/gorm" ) func main() { // 尝试用 root 用户连接,但指定 IP dsn := "root:881116142@tcp(127.0.0.1:3306)/mysql?charset=utf8mb4&parseTime=True&loc=Local&multiStatements=true" db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{}) if err != nil { // 尝试其他方式 dsn2 := "root:881116142@tcp(localhost:3306)/mysql?charset=utf8mb4&parseTime=True&loc=Local&multiStatements=true" db, err = gorm.Open(mysql.Open(dsn2), &gorm.Config{}) if err != nil { println("无法连接,请通过其他方式在 MySQL 服务器上执行:") println("CREATE USER IF NOT EXISTS 'root'@'%' IDENTIFIED BY '881116142';") println("GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;") println("FLUSH PRIVILEGES;") panic("连接失败: " + err.Error()) } } // 创建新用户 sqls := []string{ "CREATE USER IF NOT EXISTS 'admin'@'%' IDENTIFIED BY 'admin123'", "GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION", "FLUSH PRIVILEGES", } for _, sql := range sqls { if err := db.Exec(sql).Error; err != nil { println("执行: " + sql + " - 错误: " + err.Error()) } else { println("执行成功: " + sql) } } println("创建了新用户 admin,可以用这个连接 Navicat") }