我试图在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:27017>/base -u "base" -p "base"
它在远程服务器上正常工作。
在本地计算机上,我在本地计算机上尝试了相同的命令,但失败了
> mongo 127.0.0.1:27017/base -u "base" -p "base"
[js] Error: Authentication failed. :
connect@src/mongo/shell/mongo.js:344:17
@(connect):2:6
exception: connect failed
答案 0 :(得分:0)
127.0.0.1引用了主机的本地主机,如果要使用一台主机,则需要在两台机器上都设置用户,如果要使用共享云中数据的数据库,则可以使用Mlab,或者如果两个ip都在同一个网络中,则可以通过ip地址进行相互引用
mongo <ip_address>:27017/base -u "base" -p "base"