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