我一直在寻找如何将Golang应用程序连接到MySQL数据库(我正在将MyMySQL库与数据库/sql接口(interface)一起使用)。如果使用非 native 版本而不是数据库/sql接口(interface),则可以使连接正常运行并执行查询。如果我尝试使用数据库/sql go接口(interface)进行连接(我认为这是连接MySQL的最佳方法?),那么我无法使连接正常工作吗?我不断收到的错误是“URI的数据库部分错误” ????

对不起,变量名,但我一直在尝试并尝试使各种版本正常工作,因此,这些名称再次有点遗憾。

感谢您为我的问题提供的帮助,再次感谢您的宝贵时间。

mysql - 我需要一些帮助以正确获取连接字符串以将Golang连接到AWS RDS-LMLPHP

最佳答案

mymysql包定义了使用database/sql包(来自their readme)时用于访问MySQL的非标准URI格式:

[PROTOCOL_SPECIFIC*]DBNAME/USER/PASSWD

因此,在您的情况下,您想将格式字符串更改为此:
connectionStr := fmt.Sprintf("tcp:%s:3306,%s/%s/%s", database, dbname, user, password)

您看到错误的原因是Open函数根据/(请参阅this)将URI分为3个部分,如果发现少于三个部分,则会失败。

附带说明一下,除非您有充分的理由选择mymysql,否则应考虑使用go-sql-driver/mysql,因为它是出色的MySQL驱动程序,并且支持已经定义的标准MySQL DSN。

10-04 21:35
查看更多