今回は、GoでMongodbに接続する際に発生した「command insert requires authentication」エラーの解決方法について整理していこうと思います。
GoでMongoDBを使おう
"gopkg.in/mgo.v2"
- GoでMongoDBを使うには上記のパッケージを利用します。
$go get gopkg.in/mgo.v2"
- 上記のコマンドでインストールするのも忘れないでください。
MongoDBの接続セッション生成

- mgo.Dial(url)を利用してセッションを作成ていましたが、Insert時エラーが発生しました。

- command insert requires authenticationエラーが発生!!
- 原因を調べたところ、MongoDBの認証情報をenabled設定しておきましたが、セッション作成時、認証情報をセットしていなかったのが原因でした。
解決

- 認証情報をセットするには、セッションを作成時に上記のメソッドを利用して作成します。

- 上記のようにMongoDBの認証情報をセットしてDialWithInfoに渡せば良いです。
- Database:空白に渡すとデフォルトでtestがセットされます。
- Sourch:空白に渡すとデフォルトでadminがセットされます。
- 自分のサイドプロジェクトはtest、adminで良いので空白に渡しました。

- 上記はDialWithInfo()の一部です。

- 正常にチャットルームも生成されるし、チャットもできるようになりました!!!(この記事とは関係ないですけど。。)
終わりに
エラーはいつも怖いですね。これで1時間以上ググってました。
GoでMongoDBを使用する詳しい方法はDocを参考してください。
