##対象読者
- GCP環境のMySqlを作成したが、Golangからどのように接続すればよいのか分からない。
##やる事
#####1.github.com/GoogleCloudPlatform/cloudsql-proxy/proxy/dialers/mysqlをインポート
##使い方
Githubに使い方が書いてありました。(知らずに試行錯誤してしまったので反省...)
##解説
接続に必要な部分に絞って解説します。
import (
"github.com/GoogleCloudPlatform/cloudsql-proxy/proxy/dialers/mysql"
)
func ConnectDB() {
cfg := mysql.Cfg("[1.プロジェクト]:[2.リージョン]:[3.インスタンス名]", "[4.ユーザ名]", "[5.パスワード]")
cfg.DBName = "[6.DB名]"
db, err := mysql.DialCfg(cfg)
if err != nil {
log.Fatal("Error connecting server")
}
defer db.Close()
}
必要な情報は大まかに6つです。
####1.プロジェクト→プロジェクトIDを入力します。
####2.リージョン→SQLのリンクのロケーション情報を入力します。
####3.インスタンス名→SQLのリンクのインスタンスID情報を入力します。
1~3までの情報を:で挟んでmysql.Cfgの第一引数に渡します。("[1.プロジェクト]:[2.リージョン]:[3.インスタンス名]")
####4.ユーザ名→SQL>インスタンスID>ユーザから、ユーザ名とパスワード情報を入力します。
4の情報をmysql.Cfgの第ニ引数に渡します。
####5.パスワード
5の情報をmysql.Cfgの第三引数に渡します。
####6.DB名→SQL>インスタンスID>データベースから、DB名情報を入力します。
6の情報をcfgのDBNameプロパティにセットします。
これで上記のソースのようにすればMySqlに接続できます。
##反省点
Golang=>MySqlの接続方法はすぐに分かったのですが、GCPクラウドへの接続が必要になる為、どのようにソースを書けばいいのか分からず無駄に悩んでしまいました。
これからはGithubをよく読んで公式のサンプルソースが無いか探してみるようにします。