· 7 years ago · Feb 08, 2019, 09:18 PM
1Connect from your machine
2```bash
3mysql -u admin -p -h YOUR_CLUSTER_NAME.us-west-2.rds.amazonaws.com
4```
5Create the schema and add data
6```bash
7CREATE TABLE IF NOT EXISTS Messages (
8 id INT AUTO_INCREMENT,
9 msg VARCHAR(255) NOT NULL,
10 PRIMARY KEY (id)
11);
12
13INSERT INTO Messages (msg) VALUES("hi RDS");
14INSERT INTO Messages (msg) VALUES("This works");
15INSERT INTO Messages (msg) VALUES("Just Fine");
16```
17Install go-sql-driver
18```bash
19go get -u github.com/go-sql-driver/mysql
20```
21go-rds.go
22```bash
23package main
24
25import (
26 "database/sql"
27 "fmt"
28
29 _ "github.com/go-sql-driver/mysql"
30)
31
32func main() {
33 db, err := sql.Open("mysql", "user:password@tcp(YOUR_CLUSTER_NAME.us-west-2.rds.amazonaws.com)/db")
34 if err != nil {
35 panic(err.Error())
36 }
37 defer db.Close()
38
39 rows, err := db.Query("SELECT msg FROM db.Messages")
40 if err != nil {
41 panic(err.Error())
42 }
43 defer rows.Close()
44
45 columns, err := rows.Columns()
46 if err != nil {
47 panic(err.Error())
48 }
49 values := make([]sql.RawBytes, len(columns))
50 scanArgs := make([]interface{}, len(values))
51 for i := range values {
52 scanArgs[i] = &values[i]
53 }
54
55 for rows.Next() {
56 err = rows.Scan(scanArgs...)
57 if err != nil {
58 panic(err.Error())
59 }
60
61 var value string
62 for i, col := range values {
63 if col == nil {
64 value = "NULL"
65 } else {
66 value = string(col)
67 }
68 fmt.Println(columns[i], ": ", value)
69 }
70 fmt.Println("-----------------------------------")
71 }
72 if err = rows.Err(); err != nil {
73 panic(err.Error())
74 }
75}
76```
77Run the go code
78```bash
79go run go-rds.go
80```