2014-09-23 68 views
6

我可以使用mysql -h ...命令連接到RDS實例,因此我知道這不是安全組問題。如何使用go-sql-driver連接到Amazon RDS

我試着使用:

sql.Open("mysql", "id:[email protected](your-amazonaws-uri.com:3306)/dbname") 

進去-SQL驅動程序(https://github.com/go-sql-driver/mysql)的自述文件,但它似乎並沒有工作。

雖然我在RDS實例下使用我的用戶名而不是id。

編輯: 返回的錯誤是:panic runtime error: invalid memory address or nil pointer deference [signal 0xb code=0x1 addr=0x20 pc=0x5b551e] goroutine 16 [running] runtime.panic(0x7d4fc0, 0xa6ca73)...database/sql.(*Rows).Next...

它正常工作與我的本地數據庫。

+0

應該返回一個錯誤,請張貼。 – OneOfOne 2014-09-23 16:22:51

回答

0

確保實際的錯誤不涉及進口問題(如issues 266

檢查(以確保您使用的是最新版本,在this issue):

  • 您GO-MySQL的驅動程序版本(或混帳SHA)
  • 您的圍棋版本(在控制檯上運行go version

如果錯誤是不能直接我n個開放式的一步,但訪問行,check this comment out時:

使用一個for環(for rows.Next() { ... }),或者是這樣的:

if rows.Next() { 
    // whatever 
} else { 
    // catch error with rows.Err() 
} 
rows.Close() // <- don't forget this if you are not iterating over ALL results 
+0

我經歷了你所提到的一切。我在做的事情對我的本地MySQL實例來說工作得很好。兩個數據庫實例(本地和RDS)之間的唯一區別是MySQL版本。你認爲這是一個可能的原因? – John 2014-09-23 16:46:40

+0

@UserNotDefined是的,這可能是導致溝通不暢的原因。 – VonC 2014-09-23 16:47:33