【发布时间】:2022-01-11 17:09:36
【问题描述】:
应用程序需要一个名称包含@字符的用户,我发现golang-sql似乎会在名称包含@并且密码为空时崩溃,就像
sql.Open("mysql", "root@proxy@tcp(172.21.30.22:3306)..")
【问题讨论】:
-
尝试
Config.FomatDSN让驱动程序代码自己做必要的事情。 -
@kostix 我不认为this helps in this case - 因为
@没有被转义。我肯定已经看到 MySQL 驱动程序在密码中出现特殊字符 - 即使使用Config.FormatDSN也是如此。因此,当前的 mysqlGo驱动程序可能无法使用 OP 的凭据。 -
如果是这样——我的意思是即使负责准备句法正确的 DSN 的 stock 函数无法解决它——这是一个值得上游报告的错误。
-
来自 MySQL 的 This manual 说在适用的情况下使用
%40而不是@,并且还建议了一种称为“键值对”的替代方法。我会尝试这两件事。不过,我也会报告一个错误。
标签: mysql go database-connection