カテゴリ: Go言語 更新日: 2026/02/07

Go言語でのDB接続情報を環境変数で管理する方法|初心者でも安全に設定

Go言語のDBの接続情報を環境変数で管理する方法
Go言語のDBの接続情報を環境変数で管理する方法

先生と生徒の会話形式で理解しよう

生徒

「Go言語でデータベースに接続するとき、ユーザー名やパスワードってソースコードに書いちゃってもいいんですか?」

先生

「直接書くとセキュリティ上危険です。特にGitなどで公開すると誰でも見られてしまいます。」

生徒

「じゃあ安全に管理するにはどうすればいいですか?」

先生

「環境変数を使う方法があります。環境変数はOSに保存される設定値で、プログラムから読み込むことができます。」

生徒

「それなら、ソースコードにパスワードを書かなくて済むんですね。」

先生

「その通りです。それでは基本的な使い方を見ていきましょう!」

1. 環境変数とは?

1. 環境変数とは?
1. 環境変数とは?

環境変数は、OSやシステムが持つ設定情報で、プログラムから呼び出して使うことができます。例えば、ユーザー名やパスワード、データベースの接続先URLなど、秘密にしたい情報を保存するのに便利です。

2. 環境変数の設定方法

2. 環境変数の設定方法
2. 環境変数の設定方法

Windowsではコマンドプロンプトで以下のように設定します。


set DB_USER=myuser
set DB_PASS=mypassword
set DB_HOST=localhost
set DB_NAME=mydb

MacやLinuxではターミナルで以下のように設定します。


export DB_USER=myuser
export DB_PASS=mypassword
export DB_HOST=localhost
export DB_NAME=mydb

このように設定した値は、プログラム内で読み込むことができます。

3. Go言語で環境変数を読み込む

3. Go言語で環境変数を読み込む
3. Go言語で環境変数を読み込む

Go言語ではosパッケージを使って環境変数を取得できます。


import (
    "fmt"
    "os"
)

func main() {
    dbUser := os.Getenv("DB_USER")
    dbPass := os.Getenv("DB_PASS")
    dbHost := os.Getenv("DB_HOST")
    dbName := os.Getenv("DB_NAME")

    fmt.Println("ユーザー:", dbUser)
    fmt.Println("ホスト:", dbHost)
}

環境変数が正しく設定されていれば、プログラムから安全に情報を取得できます。

Go言語を基礎からスッキリ学びたい人や、 文法だけでなく「実用的な使い方」まで押さえたい人には、 定番の入門書がこちらです。

基礎からわかるGo言語をAmazonで見る

※ Amazon広告リンク

4. データベース接続に環境変数を活用する

4. データベース接続に環境変数を活用する
4. データベース接続に環境変数を活用する

例えばPostgreSQLに接続するとき、接続情報を環境変数から取得することでソースコードにパスワードを書かずに済みます。


import (
    "database/sql"
    "fmt"
    "os"

    _ "github.com/lib/pq"
)

func main() {
    dbUser := os.Getenv("DB_USER")
    dbPass := os.Getenv("DB_PASS")
    dbHost := os.Getenv("DB_HOST")
    dbName := os.Getenv("DB_NAME")

    connStr := fmt.Sprintf("postgres://%s:%s@%s/%s?sslmode=disable",
        dbUser, dbPass, dbHost, dbName)
    db, err := sql.Open("postgres", connStr)
    if err != nil {
        panic(err)
    }
    defer db.Close()
    fmt.Println("データベースに接続できました")
}

この方法で、誰が見てもパスワードはソースコードに含まれず、安全性が高まります。

5. .envファイルと組み合わせる方法

5. .envファイルと組み合わせる方法
5. .envファイルと組み合わせる方法

環境変数を毎回設定するのが面倒な場合、.envファイルを使う方法もあります。godotenvというライブラリを使えば、Goプログラム起動時に自動で環境変数を読み込めます。


import (
    "fmt"
    "os"

    "github.com/joho/godotenv"
)

func main() {
    err := godotenv.Load()
    if err != nil {
        fmt.Println("envファイルの読み込み失敗")
    }

    dbUser := os.Getenv("DB_USER")
    fmt.Println("ユーザー:", dbUser)
}

これにより、開発環境や本番環境ごとに異なる接続情報を簡単に切り替えられます。

6. セキュリティ上の注意点

6. セキュリティ上の注意点
6. セキュリティ上の注意点

環境変数を使う場合でも、.envファイルをGitに含めないことが重要です。.gitignoreに追加して、絶対に公開リポジトリに含まれないようにしましょう。また、本番環境ではOS側の環境変数管理を活用して安全に運用してください。

7. まとめないけど最後のポイント

7. まとめないけど最後のポイント
7. まとめないけど最後のポイント

環境変数を使うことで、Go言語でのデータベース接続情報の管理が簡単かつ安全になります。開発・運用の効率が上がり、パスワードや接続先情報をソースコードに書くリスクを回避できます。さらにgodotenvなどのツールを使えば、複数環境での切り替えも簡単です。

関連記事:
カテゴリの一覧へ
新着記事
New1
Swift
SwiftPMで自作パッケージを公開する方法を完全ガイド!初心者でもわかる公開手順
New2
Kotlin
Kotlinの拡張関数をライブラリとしてまとめる方法!初心者でもできるコード再利用術
New3
Go言語
Go言語のDBアクセス層の設計パターンとベストプラクティス|初心者向け解説
New4
Kotlin
Kotlinのスコープ関数の戻り値の違いと使い分けを初心者向けに解説!
人気記事
No.1
Java&Spring記事人気No1
Go言語
Go言語のドライバ設定を完全解説!MySQL・PostgreSQLの接続手順を初心者向けにやさしく説明
No.2
Java&Spring記事人気No2
Kotlin
KotlinのChannelでデータをやり取りする方法を完全ガイド!初心者にもわかる非同期通信の基本
No.3
Java&Spring記事人気No3
Kotlin
Kotlin DSLとGroovy DSLの違いをやさしく解説!初心者でもわかるGradleスクリプトの使い分け
No.4
Java&Spring記事人気No4
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.5
Java&Spring記事人気No5
Swift
Swift UIKitとSwiftUIの違いを徹底比較!初心者はどちらを選ぶべき?
No.6
Java&Spring記事人気No6
Kotlin
Kotlinでテキスト表示・編集!初心者でもわかるTextViewとEditTextの使い方
No.7
Java&Spring記事人気No7
Kotlin
Kotlinのビルド設定エラーと解決法まとめ!初心者向けGradleトラブル対処ガイド
No.8
Java&Spring記事人気No8
Kotlin
Kotlinでデータベースのテストを行う方法を徹底解説!初心者でもわかるRoomのテスト入門

💻 作業効率アップに

ノートPCを縦置きしてデスクを広く。
省スペースで片づく定番スタンド

UGREEN 縦型スタンドをAmazonで見る

※ Amazon広告リンク