我试图在mongodb服务器上进行远程连接,将本地计算机丢掉,但是我遇到了一些问题。
在远程服务器上,我修改了“ mongod.cfg”文件,并将bindIp从127.0.0.1更改为0.0.0.0以允许访问。在同一文件中,我通过添加身份验证来更改安全性:“已启用”。
我创建了一个管理员用户:
> use admin
> db.createUser({user: "root", pwd: "root", roles:["root"]})
我用--auth标志启动了mongodb
> mongod --auth --port 27017
服务器启动后,我以管理员身份连接到服务器
mongo 127.0.0.1:27017 -u "root" -p "root" --authenticationDatabase "admin"
连接后,我会创建一个普通用户
> use base
> db.createUser({user: "base", pwd: "base", roles:["dbOwner"]})
然后我从mongo shell断开连接,并使用新的用户凭据重新连接
> mongo 127.0.0.1/base -u "base" -p "base"
它在远程服务器上正常工作。
在我尝试过的本地计算机上:
> mongo <ip address of the server>/base -u "base" -p "base"
我收到此错误:
> mongo <ip address>:27017/base -u "base" -p "base"
[js] Error: couldn't connect to server <ip address>:27017, connection attempt failed: SocketException: Error connecting to <ip address>:27017 :: caused by :: Operation timed out :
connect@src/mongo/shell/mongo.js:344:17
@(connect):2:6
exception: connect failed
答案 0 :(得分:0)
可能是您的本地计算机和远程服务器使用了不同版本的MongoDB Shell。 您正在使用哪个版本的mongo shell?
您还需要将连接字符串用双引号引起来:
mongo "<ip address>:27017/base" -u "base" -p "base".
另一个问题可能是您需要将i.p列入白名单或配置防火墙规则。