Dockerで立てたmysqlにgolangから接続する方法
Contents
golangからはデフォルトで入っているdbコネクタ"database/sql"
とドライバ"github.com/go-sql-driver/mysql"
からmysqlに接続できます。
ただ、dockerで立てたmysqlに対して、localhostへの接続がうまく行かなかったので備忘録
前提
dockerは先日限定ユーザにリリースされたdocker betaを使用しています。(多分boot2dockerを使っている場合はそれほど難しくないかも)
ホストOSはOSX El Capitan
です
解決策
dockerでmysqlを立ち上げる
今回はdocker-composeを使用しました。
|
|
上記を設定した後docker-compose up -d
でmysqlサーバの設定完了
/etc/hostsでlocalhost以外のホストを設定する
mysqlクライアントはlocalhostへの接続をしようとしたときに、ホストにあるmysql.sockを読みに行こうとしますが、dockerで立ち上げているので、そんなものは無いと怒られます。 なので、あたかもリモートサーバにアクセスしているかのように振る舞う必要があるので、暫定的にhostsにlocalhost以外の名前をわりあてました。
|
|
golangに設定を記述する
上記設定が終われば後はgolangから接続するだけです。
|
|
Author kotamat
LastMod 2016-05-16