我需要一些帮助来获得正确的连接字符串以将 Golang 连接到 AWS RDS
I need some help getting the connection string correct to connect Golang to AWS RDS
我一直在研究如何将 Golang 应用程序连接到 MySQL 数据库(我正在使用带有 database/sql 接口的 MyMySQL 库)。如果我使用 none 本机版本而不是 database/sql 接口,我可以使连接完美运行并执行查询。如果我尝试使用 database/sql go 接口(我认为这是与 MySQL 接口的最佳方式?)进行连接,那么我就无法使连接正常工作?我不断收到的错误是 'Wrong database part of URI'??????
对于变量名,我很抱歉,但我一直在尝试并尝试让各种版本正常工作,所以名称有点古怪,再次抱歉。
非常感谢您能帮助我理解我的问题,再次感谢您的宝贵时间。
mymysql 包定义了非标准的 URI 格式,用于在使用 database/sql
包(来自 their readme)时访问 MySQL:
[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 就像您已经定义的那样。
我一直在研究如何将 Golang 应用程序连接到 MySQL 数据库(我正在使用带有 database/sql 接口的 MyMySQL 库)。如果我使用 none 本机版本而不是 database/sql 接口,我可以使连接完美运行并执行查询。如果我尝试使用 database/sql go 接口(我认为这是与 MySQL 接口的最佳方式?)进行连接,那么我就无法使连接正常工作?我不断收到的错误是 'Wrong database part of URI'??????
对于变量名,我很抱歉,但我一直在尝试并尝试让各种版本正常工作,所以名称有点古怪,再次抱歉。
非常感谢您能帮助我理解我的问题,再次感谢您的宝贵时间。
mymysql 包定义了非标准的 URI 格式,用于在使用 database/sql
包(来自 their readme)时访问 MySQL:
[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 就像您已经定义的那样。