Mysql 如何使用go sql驱动程序连接到Amazon RDS

Mysql 如何使用go sql驱动程序连接到Amazon RDS,mysql,go,amazon-rds,Mysql,Go,Amazon Rds,我可以使用mysql-h…命令连接到RDS实例,因此我知道这不是安全组问题 我尝试使用: sql.Open("mysql", "id:password@tcp(your-amazonaws-uri.com:3306)/dbname") 在go-sql-driver()的自述文件中,但它似乎不起作用 不过,我在RDS实例下使用的是用户名,而不是id 编辑: 返回的错误为:panic运行时错误:无效内存地址或零指针差异[信号0xb code=0x1 addr=0x20 pc=0x5b551e] g

我可以使用
mysql-h…
命令连接到RDS实例,因此我知道这不是安全组问题

我尝试使用:

sql.Open("mysql", "id:password@tcp(your-amazonaws-uri.com:3306)/dbname")
在go-sql-driver()的自述文件中,但它似乎不起作用

不过,我在RDS实例下使用的是用户名,而不是id

编辑: 返回的错误为:
panic运行时错误:无效内存地址或零指针差异[信号0xb code=0x1 addr=0x20 pc=0x5b551e]
goroutine 16[跑步]
runtime.panic(0x7d4fc0,0xa6ca73)…数据库/sql。(*行)。下一步…


它可以与我的本地数据库配合使用。

确保实际错误与导入问题无关(如中所示)

检查(确保您使用的是最新版本,如中所示):

  • 您的Go MySQL驱动程序版本(或git SHA)
  • 您的Go版本(在控制台中运行
    Go版本
如果错误不是直接出现在打开步骤中,而是在访问行时,则:

使用
for
循环(
for rows.Next(){…}
)或类似的方法:

if rows.Next(){
//随便
}否则{
//捕获行中的错误。Err()
}

rows.Close()//sql.Open()的连接字符串为DSN格式

import (
    "database/sql"
    "fmt"

    _ "github.com/go-sql-driver/mysql"
)

db, err := sql.Open("mysql", "<username>:<password>@tcp(<AWSConnectionEndpoint >:<port>)/<dbname>")

if err != nil {
    fmt.Print(err.Error())
}

defer db.Close()
导入(
“数据库/sql”
“fmt”
_“github.com/go-sql-driver/mysql”
)
db,err:=sql.Open(“mysql”,“:@tcp(:)/”)
如果出错!=零{
fmt.Print(err.Error())
}
延迟db.Close()

它应该返回一个错误,请发布。问题解决了吗?我需要帮助。你提到的我都看过了。我所做的工作与我的本地MySQL实例配合得非常好。两个DB实例(本地与RDS)之间的唯一区别是MySQL版本。你认为这是一个可能的原因吗?@UserNotDefined是的,这可能是一个沟通错误的原因。
import (
    "database/sql"
    "fmt"

    _ "github.com/go-sql-driver/mysql"
)

db, err := sql.Open("mysql", "<username>:<password>@tcp(<AWSConnectionEndpoint >:<port>)/<dbname>")

if err != nil {
    fmt.Print(err.Error())
}

defer db.Close()