Comment puis-je me connecter à un serveur mongo distant à partir du terminal Mac OS
je voudrais plonger dans la coquille de mongo dans le terminal sur mon MacBook. Cependant, je suis intéressé à me connecter à une instance de Mongo qui est en cours d'exécution dans le cloud (composer.io instance via Heroku addon). J'ai le nom, le mot de passe de l'hôte, le port et le nom de base de données de MongoDB URI:
mongodb://username:password@somewhere.mongolayer.com:10011/my_database
j'ai installé mongodb sur mon MacBook en utilisant Homebrew non pas parce que je veux que Mongo tourne sur mon Mac, mais juste pour avoir accès au programme Mongo shell afin de se connecter à cette base de données distante.
cependant, je ne trouve pas la bonne commande pour me donner l'accès complet au shell que je voudrais. En utilisant les instructions trouvées ici http://docs.mongodb.org/manual/reference/program/mongo/ (de la recherche pour "à distance"), je suis en mesure d'obtenir ce qui ressemble à une connexion, mais sans donner mon nom d'utilisateur ou mot de passe, je ne suis pas entièrement connecté. L'exécution de db.auth(username, password)
retourne 1 (par opposition à "auth fails" lorsque je fournis un nom d'utilisateur incorrect et mot de passe), mais je continue à recevoir un message d'erreur "non autorisé" lors de l'émission de la commande show dbs
.
2 réponses
vous vous connectez probablement fine mais n'avez pas assez de privilèges pour exécuter show dbs
.
vous n'avez pas besoin d'exécuter le db.auth si vous passez l'auth dans la ligne de commande:
mongo somewhere.mongolayer.com:10011/my_database -u username -p password
une fois connecté, pouvez-vous voir les collections?
> show collections
si c'est le cas, tout va bien et vous n'avez tout simplement pas les privilèges d'administrateur de la base de données et ne pouvez pas exécuter le show dbs
avec Mongo 3.2 et plus utilisez simplement votre chaîne de connexion telle quelle:
mongo mongodb://username:password@somewhere.mongolayer.com:10011/my_database