Capistrano タスクで MongoDB データベースを作成する目的で、MongoDB が認証をオンにして実行されているときに、MongoDB シェルを介して新しいデータベースを作成する方法を理解する必要があります。
認証をオンにすると、MongoDB シェルは最初に認証しないと何もできませんが、私の知る限り、管理データベースを使用している間に認証を行う必要があります。だから私は次のような初心者のためにそれに接続しています:
sudo -u mongodb mongo admin --eval "db.auth(username, password)"
そして、それはさらなるアクションのために私を認証しますが...その時点で、同じシェルセッションでデータベースとそのユーザーを作成する必要があります. しかし、私はできません:
sudo -u mongodb mongo admin --eval "db.auth(username, password);use new_database"
use database
eval では使用できないためです。だから私は代わりに試しました:
sudo -u mongodb mongo admin --eval "db.auth(username, password);db = connect('localhost:27017/new_database')"
そして、それは実際に私が作成したい新しいデータベースのインスタンスを取得しますが、私がしようとすると:
sudo -u mongodb mongo admin --eval "db.auth(username, password);connect('localhost:27017/new_database').addUser(new_user, new_password)"
認証エラーが発生するため、connect()
コマンドを使用すると、以前に認証したことを忘れているようです。
これが私が立ち往生しているところで、認証と管理者ユーザーを使用してMongoDBで1行でデータベースを作成しようとしています。
これを行う方法について何か提案はありますか?