Help us understand the problem. What is going on with this article?

Golang mysql CREATE DATABASE IF NOT EXISTS

こんにちは!Golang 勉強中です!

今回はDB作成〜接続を行なっていきます!

DB接続の方法はすぐに見つかりましたが、DB作成は手動でしている記事が多い印象でした。
直接Mysqlから実行ではなく、GOからオートマチックに操作したかったので方法を調べてみました。

参考記事

package main

import (
    "database/sql"

    _ "github.com/go-sql-driver/mysql"
)

// DbConnection grobal
var DbConnection *sql.DB

func checkDb() {
    DbConnection, err := sql.Open("mysql", "root:@tcp(127.0.0.1:3306)/")
    if err != nil {
        panic(err)
    }
    defer DbConnection.Close()

    _, err = DbConnection.Exec("CREATE DATABASE IF NOT EXISTS db_name")
    if err != nil {
        panic(err)
    }
    DbConnection.Close()

    return
}


func main() {
    checkDb()
}

packageがimportできてないとエラーが出るので適宜importしてください!

以下解説

こちらのコードでmysqlと接続しています
"root:@tcp(127.0.0.1:3306)/"

root ユーザー名
:以降 パスワード (今回はルートユーザーなのでパスワードなしです)
@以降 プロトコル

mysqlと接続後にこちらのコードでDBの存在チェックと作成を行います。
DbConnection.Exec("CREATE DATABASE IF NOT EXISTS db_name")

関数を呼び出して実行します。

func main() {
    checkDb()
}

以上です!

DBの操作はORMを使っていきたいと思ってます!
ご指摘あればぜひお願いします!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away