如何解决:错误:无法连接到服务器192.168.1.249:27017,连接尝试失败:连接被拒绝

时间:2019-06-27 10:17:36

标签: mongodb

我正在远程服务器上运行mongodb,我想在本地计算机上访问

我试图删除mongodb.lock文件,也尝试了sudo mongod --repair,但是这些都不适合我。

这是在我做mongo 192.168.1.249:27017/testDB或只是做mongo 192.168.1.249

时发生的

我得到:

[js] Error: couldn't connect to server 192.168.1.249:27017, connection attempt failed: SocketException: Error connecting to 192.168.1.249:27017 :: caused by :: Connection refused :
connect@src/mongo/shell/mongo.js:344:17
@(connect):2:6
exception: connect failed  

mongo.cfg文件如下:

# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# Where and how to store data.
storage:
  dbPath: C:\Program Files\MongoDB\Server\4.0\data
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path:  C:\Program Files\MongoDB\Server\4.0\log\mongod.log

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0


#processManagement:

#security:
  authorization: 'enabled'

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options:

#auditLog:

#snmp:

2 个答案:

答案 0 :(得分:0)

检查服务器接收到的IP地址和端口号是否相同。

答案 1 :(得分:0)

打开mongodb配置文件:

Ubuntu:

sudo nano /etc/mongod.conf

窗口:

MongoDB_installation_Directory/Server/{version}/bin/mongod.cfg 
// MongoDB_installation_Directory could be C://MongoDB or C://Program Files/MongoDB

编辑:

# network interfaces
net:
    port: 27017
    bindIp: 0.0.0.0   #default value is 127.0.0.1

重新启动MongoDB服务器:

sudo service mongod restart

默认情况下,mongodb配置为仅允许来自本地主机的连接。我们需要允许远程连接。在配置文件中,转到“网络接口”部分,并将bindIp从127.0.0.1更改为0.0.0.0 ,这意味着允许来自所有IP地址的连接

您还可以启用MongoDB身份验证:

打开mongo shell:

mongo

在mongo shell内访问管理数据库。创建一个新的管理员用户。

> use admin;
> db.createUser({
      user: "admin",
      pwd: "password",
      roles: [
                { role: "userAdminAnyDatabase", db: "admin" },
                { role: "readWriteAnyDatabase", db: "admin" },
                { role: "dbAdminAnyDatabase",   db: "admin" }
             ]
  });

现在创建db用户,并授予他们在各自数据库中的角色。

> db.createUser({
      user: "user",
      pwd: "user_password",
      roles: [
                { role: "userAdmin", db: "yourDB" },
                { role: "dbAdmin",   db: "yourDB" },
                { role: "readWrite", db: "yourDB" }
             ]
  });

在同一配置文件中,

security:
    authorization: 'enabled'

重新启动MongoDB:

Ubuntu:

sudo service mongod restart

Windows:

"MongoDB_installation_Directory/Server/{version}/bin/mongod.exe" --dbpath path/to/db
// MongoDB_installation_Directory could be C://MongoDB or C://Program Files/MongoDB

要在远程使用auth访问mongo:

# to access the admin database
mongo -u admin -p password {public IP}/admin

# to access the other databases
mongo -u user -p user_password {public IP}/yourDB