MongoDB command createUser requires authentication

MongoDBでAdminユーザーを生成時に以下のエラーが出てしまい、その解決方法についてみていきたいと思います。

以下の内容はMac基準で説明です。

エラー

command createUser requires authentication

ユーザー生成には認証が必要です。ということです。

原因

MongoDBの設定情報に認証が必要と設定されているからです。

$ cd /usr/local/etc

確認のため上記のパスに移動してみましょう。

mongod.conf

「mongod.conf」があります。それを開いてみましょう。

security:
  authorization: enabled

開いてみると「security.authorization」が活性(enabled)になっていることが確認できます。これはMongodbを操作時に認証が必要という設定です。

解決

MongoDBの設定変更

security:
  authorization: enabled

上記の項目を「mongod.conf」から削除して保存します。

$ brew services list

設定ファイル変更後はServiceを再起動する必要があるため、ターミナルに上記のコマンドを入力してMongoDBのService Nameを確認します。

$ brew services stop mongodb-community

上記のコマンドでMongoDBを停止します。

$ brew services restart mongodb-community

次に上記のコマンドを利用し、再起動します。画像は以下となります。

権限付与

$ mongo --host localhost --port 27017

上記のコマンドでMongoDBを起動します。

use admin

Adminに切り替え、ユーザーを作成します。

db.createUser({ user: 'havebeen', pwd: **********, roles: ['root'] })

上記のコマンドでユーザー作成が可能です。

これで終わりです。

注意

終わった後は、必ず「mongod.conf」の「security.authorization」を戻しましょう!

コメントを残す