我需要一些帮助来正确连接字符串以将Golang连接到AWS RDS

时间:2018-02-04 00:18:59

标签: mysql database go amazon-rds

我一直在寻找如何将Golang应用程序连接到MySQL数据库(我使用带有数据库/ sql接口的MyMySQL库)。如果我使用none本机版本而不是数据库/ sql接口,我可以使连接完美地工作并执行查询。如果我尝试使用数据库/ sql go接口连接(我认为这是与MySQL接口的最佳方式?)那么我只是无法使连接工作?我一直得到的错误是“URI的数据库部分错误”?????

很抱歉变量名称,但我一直在努力尝试各种版本的工作,所以这些名字有点令人难过。

感谢任何帮助理解我的问题,再次感谢您的时间。

The go code which I am using to produce the connection string.

1 个答案:

答案 0 :(得分:2)

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函数根据/将URI拆分为3个部分(请参阅this),如果发现少于三部分。

另外,除非您有充分的理由选择mymysql,否则您应该考虑使用go-sql-driver/mysql,因为它是一个优秀的MySQL驱动程序,并支持您已定义的标准MySQL DSN。