MongoDB如何修复:错误:无法连接到服务器197.0.196.205:27017,连接尝试失败:SocketException

时间:2019-07-01 08:42:41

标签: node.js mongodb

我试图在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

1 个答案:

答案 0 :(得分:0)

可能是您的本地计算机和远程服务器使用了不同版本的MongoDB Shell。 您正在使用哪个版本的mongo shell?

您还需要将连接字符串用双引号引起来:

mongo "<ip address>:27017/base" -u "base" -p "base".

另一个问题可能是您需要将i.p列入白名单或配置防火墙规则。