相关疑难解决方法(0)

如何从Mac OS终端连接到远程mongo服务器

我想放入MacBook终端的mongo shell.但是,我有兴趣连接到在云中运行的Mongo实例(通过Heroku插件进行compose.io实例).我有MongoDB URI中的名称,密码,主机,端口和数据库名称:

mongodb://username:password@somewhere.mongolayer.com:10011/my_database
Run Code Online (Sandbox Code Playgroud)

我使用Homebrew在我的MacBook上安装了mongodb并不是因为我想在我的Mac上运行Mongo,而只是为了连接到这个远程数据库而访问mongo shell程序.

但是,我找不到正确的命令来获取我想要的完整shell访问权限.使用这里的说明http://docs.mongodb.org/manual/reference/program/mongo/(搜索"远程")我能够得到看似连接的东西,但没有提供我的用户名或密码我不是完全连接.运行db.auth(username, password)返回1(与我提供错误的用户名和密码时"auth failed"相反),但在发出show dbs命令时我仍然收到"未授权"错误消息.

mongodb mongo-shell

96
推荐指数
2
解决办法
18万
查看次数

无法使用登录名/密码登录 docker-compose 容器中的 mongoDB

在我的远程服务器上,我使用以以下方式启动的 docker 容器:

MONBULDING_PORT="8080" docker-compose up -d --no-deps --build monbulding-mongo

如果我不设置任何用户名/密码来进行身份验证,它效果很好。这是对应的docker-compose.yaml文件:

monbulding-mongo:
  image: mongo:latest
  ports:
   - "27017:27017"
Run Code Online (Sandbox Code Playgroud)

现在,如果我想设置用户名/密码来访问 MongoDB,我可以将此文件更改为:

monbulding-mongo:
  image: mongo:latest
  ports:
   - "27017:27017"
  environment:
   - AUTH=yes
   - MONGODB_ADMIN_USER=admin
   - MONGODB_ADMIN_PASS=password
   - MONGODB_APPLICATION_DATABASE=app
   - MONGODB_APPLICATION_USER=user
   - MONGODB_APPLICATION_PASS=password
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用 登录 MongoDB Robo 3T,它不起作用:在此输入图像描述

有人知道我做错了什么吗?谢谢!

编辑: 我也尝试过mongo shell

mongo --host domain.net -u admin -p password

但也有一个错误。

mongodb docker docker-compose

5
推荐指数
1
解决办法
2131
查看次数

在具有身份验证的 MongoDB Docker 映像上找不到用户

所以我尝试使用官方mongo Docker 镜像version来设置 MongoDB 4.2

我想要实现的是使用启用了身份验证的服务器,并且我想要一个带有自定义用户和密码的自定义数据库。

因此,我设置以下环境变量:

MONGO_INITDB_DATABASE: mydb
MONGO_INITDB_ROOT_USERNAME: jane
MONGO_INITDB_ROOT_PASSWORD: secret
Run Code Online (Sandbox Code Playgroud)

在文档中,它指出如果您提供后两个环境变量,则会自动启用身份验证。

但是,当我尝试mydb使用凭据jane和访问数据库时secret,我得到的只是一个错误:

Supported SASL mechanisms requested for unknown user 'jane@mydb'
SASL SCRAM-SHA-1 authentication failed for jane on mydb from client 172.17.0.1:54702 ; UserNotFound: Could not find user "jane" for db "mydb"
Run Code Online (Sandbox Code Playgroud)

这是为什么?我缺少什么?

我的猜测是创建的用户只能访问数据库admin,我需要授予该用户jane对数据库的访问权限mydb。我尝试使用以下命令来做到这一点:

mongo admin -u jane -p secret --eval "db.grantRolesToUser('jane', [{role: 'dbOwner', db: 'mydb'}])"
Run Code Online (Sandbox Code Playgroud)

但这也不起作用。我缺少什么?

mongodb docker

5
推荐指数
1
解决办法
1万
查看次数

如何允许mongo docker容器进行远程连接

我正在使用官方的mongodb docker容器.我想从端口27017上的主机连接到mongodb容器.我运行容器,暴露了这些端口

-p 27017:27017

我无法连接(连接被拒绝),我相信它,因为mongo conf文件未配置为允许远程连接.如何配置允许?官方容器没有安装vi/nano来修改图像.

我可以通过创建链接从另一个容器连接到mongodb - 但这不是我的愿望

mongodb

4
推荐指数
1
解决办法
7030
查看次数

标签 统计

mongodb ×4

docker ×2

docker-compose ×1

mongo-shell ×1