golang 编辑先前设置的标志。 MySQL 错误 1045

golang editing previously set flag. MySQL error 1045

我在用户输入后设置标志以用作 MySQL 数据库的连接参数时遇到问题。下面是我的代码片段:

func init() {

    flag.StringVar(&flagUser, "user", "root", "User")

    reader := bufio.NewReader(os.Stdin)
    fmt.Print("Enter username: ")
    inputUser, _ := reader.ReadString('\n')

    f := flag.Lookup("user")
        if inputUser != f.Value.String() {
            flag.StringVar(&flagUser, "user", inputUser, "User")
        }

    flag.Parse()
}

即使我只调用 flag.Parse 一次并且用户输入也是 "root",我也会得到 1045 ("mysql access denied for user root@localhost"),如果我不调用它就不会发生编辑标志。如果您对此问题有任何建议,我将不胜感激。

再次感谢您的帮助!

经过更多研究后,我发现无需编辑通过用户输入指定连接参数的标志,因为可以在 运行 时传递此类 mysql 参数转到应用程序(即:-user、-p 等)。