Go
言語でGORM
を使用してMySQL
のデータベースへ接続する方法をメモしておきます。
GORMでMySQLのデータベースへ接続する
下記の内容を設定し、データベースへ接続します。
- Host:ホスト名(localhostとかAWSのRDSのURL)
- Username:DBへアクセス可能なユーザ名
- Password:ユーザ名とペアとなるパスワード
- DBName:データベース名
- Port:3306などのポート番号
// NewDB
func NewDB() *DB {
conf, err := NewDBConfig()
if err != nil {
log.Fatal("Error : can't configuration DB")
}
return newDB(
&DB{
Host: conf.DB.Host,
Username: conf.DB.Username,
Password: conf.DB.Password,
DBName: conf.DB.DBName,
Port: conf.DB.Port,
},
)
}
// newDB DB接続
func newDB(d *DB) *DB {
db, err := gorm.Open("mysql", d.Username+":"+d.Password+"@tcp("+d.Host+":"+strconv.Itoa(d.Port)+")/"+d.DBName+"?charset=utf8&parseTime=True&loc=Local")
if err != nil {
panic(err.Error())
}
d.Connection = db
return d
}
NewDB
をmain.go
などのメインの実行ファイルで呼び出します。そうすることで「newDB
」が呼び出され、GORM
によるMySQL
への接続がオープンされます。
db, err := gorm.Open("mysql", d.Username+":"+d.Password+"@tcp("+d.Host+":"+strconv.Itoa(d.Port)+")/"+d.DBName+"?charset=utf8&parseTime=True&loc=Local")
この部分が実際の接続に必要な部分なので、それ以外の実装は開発環境などに応じて変更すれば良いと思います。
最後に
MySQL
のデータベースへ接続する処理はGORM
とMySQL
を使用する場合は必ず実装する処理ですが、1回実装してしまえば終わりでなかなか覚えられないので他のプロジェクトでも使えるようにここにメモしておきます。