Para poder crear una base de datos MongoDB en una tarea de Capistrano, necesito descubrir cómo crear una nueva base de datos a través del shell MongoDB cuando MongoDB se ejecuta con la autenticación activada.¿Cómo creo un nuevo MongoDB desde la línea de comando con auth activado?
Con la autenticación activada, el shell MongoDB no puede hacer nada sin primero autenticarse, pero la autentificación tiene que ocurrir mientras se utiliza la base de datos admin que yo sepa. Así que he estado conectando a ella para empezar como:
sudo -u mongodb mongo admin --eval "db.auth(username, password)"
Y eso me autentica para la acción, pero ... en ese punto que necesito para crear la base de datos, y un usuario para que en la misma sesión de shell . No puedo, sin embargo:
sudo -u mongodb mongo admin --eval "db.auth(username, password);use new_database"
Debido use database
no se pueden utilizar en eval. Así que he intentado en su lugar:
sudo -u mongodb mongo admin --eval "db.auth(username, password);db = connect('localhost:27017/new_database')"
Y que realmente me obtener una instancia de la nueva base de datos que quiero creado, pero si trato de:
sudo -u mongodb mongo admin --eval "db.auth(username, password);connect('localhost:27017/new_database').addUser(new_user, new_password)"
me sale un error de autenticación, por lo que aparentemente utilizando el comando connect()
se olvida que he autenticado antes.
Así que aquí es donde estoy atascado, tratando de crear una base de datos en una línea con MongoDB usando auth y un usuario administrador.
¿Alguna sugerencia sobre cómo puedo hacer esto?
funciona perfecto, gracias! – rjoll
http://docs.mongodb.org/manual/reference/method/db.getSiblingDB/ – kschaper
@kschaper: Gracias, corrigió el enlace de documentos (del antiguo enlace de la wiki). – Stennie