LoginSignup
3
2

More than 3 years have passed since last update.

GolangでMySql(GCP)に接続する方法

Posted at

対象読者

  • 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を入力します。

image.png

2.リージョン→SQLのリンクのロケーション情報を入力します。

3.インスタンス名→SQLのリンクのインスタンスID情報を入力します。

image.png

1~3までの情報を:で挟んでmysql.Cfgの第一引数に渡します。("[1.プロジェクト]:[2.リージョン]:[3.インスタンス名]")

4.ユーザ名→SQL>インスタンスID>ユーザから、ユーザ名とパスワード情報を入力します。

4の情報をmysql.Cfgの第ニ引数に渡します。

5.パスワード

image.png

5の情報をmysql.Cfgの第三引数に渡します。

6.DB名→SQL>インスタンスID>データベースから、DB名情報を入力します。

image.png

6の情報をcfgのDBNameプロパティにセットします。

これで上記のソースのようにすればMySqlに接続できます。

反省点

Golang=>MySqlの接続方法はすぐに分かったのですが、GCPクラウドへの接続が必要になる為、どのようにソースを書けばいいのか分からず無駄に悩んでしまいました。
これからはGithubをよく読んで公式のサンプルソースが無いか探してみるようにします。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2