节点未连接到托管的mongodb服务器,无法在第一次连接时连接到服务器

时间:2017-04-19 18:14:59

标签: node.js mongodb server hosting

我有一个Godaddy托管的网站,我正在尝试将节点连接到我的Godaddy Mongo服务器。如果我在我的mac os localhost上使用完全相同的文件运行,我可以将它连接到托管服务器。 我在托管网站上运行MEAN堆栈应用程序,而mongo服务器正在使用bitnami。 当我连接到我的godaddy托管网站时,然后运行node server/server.js它会给我以下错误:

toldhandyman@a2plcpnl0843 [~/public_html]$ node server/server.js

events.js:163
  throw er; // Unhandled 'error' event
  ^
MongoError: failed to connect to server [45.40.179.118:27017] on 
first connect [MongoError: connect ECONNREFUSED 45.40.179.118:27017]
at Pool.<anonymous> 
(/home/toldhandyman/public_html/node_modules/mongodb-
core/lib/topologies/server.js:327:35)
at emitOne (events.js:96:13)
at Pool.emit (events.js:191:7)
at Connection.<anonymous> 
(/home/toldhandyman/public_html/node_modules/mongodb-
core/lib/connection/pool.js:274:12)
at Object.onceWrapper (events.js:293:19)
at emitTwo (events.js:106:13)
at Connection.emit (events.js:194:7)
at Socket.<anonymous> 
(/home/toldhandyman/public_html/node_modules/mongodb-
core/lib/connection/connection.js:177:49)
at Object.onceWrapper (events.js:293:19)
at emitOne (events.js:96:13)
at Socket.emit (events.js:191:7)
at emitErrorNT (net.js:1283:8)
at _combinedTickCallback (internal/process/next_tick.js:80:11)
at process._tickCallback (internal/process/next_tick.js:104:9)

这就是我遇到的主要问题。我一直在搜索这个网站和其他人几天没有成功。我的server.js使用服务器调用与我的localhost一起工作:

在我的配置文件中。

MONGO_URI: 'mongodb://root:<my password here>@45.40.179.118:27017 
/told-handyman?authSource=admin',

在我的server.js文件中。

mongoose.connect(mongoURI);

当我在托管网站上使用相同的代码时,它给了我以前的错误 MongoError: failed to connect to server [45.40.179.118:27017] on first connect [MongoError: connect ECONNREFUSED 45.40.179.118:27017]。 Godaddy服务器正在使用Bitnami mongodb。我试过通过他们的文档,godaddy支持和许多其他地方。我已经尝试将端口更改为27018.在bitnami@told-handyman:/opt/bitnami/mongodb/mongodb.conf中编辑文件“mongodb.conf”在使用这些行时没有任何帮助:

#bind_ip = 127.0.0.1
#bind_ip = 0.0.0.0
port = 27017

我还尝试为数据库添加不同的用户,并使用这些凭据登录,但这只适用于localhost。我也试过停止服务器并重启几次。 我已经确定它确实到达了dbpath = / data / db。

我注意到的另一个问题是当我进入SSH时,让mongod在我的服务器中工作。如果不运行mongod,我的localhost将与托管服务器连接并正常运行。当我在我的bitnami mongo服务器中运行该行时,它显示:

bitnami@told-handyman:~$ mongod
2017-04-19T10:56:19.582-0700 I CONTROL  [initandlisten] MongoDB 
starting : pid=14692 port=27017 dbpath=/data/db 64-bit host=told-
handyman
2017-04-19T10:56:19.583-0700 I CONTROL  [initandlisten] db version 
v3.4.3
2017-04-19T10:56:19.583-0700 I CONTROL  [initandlisten] git version: 
f07437fb5a6cca07c10bafa78365456eb1d6d5e1
2017-04-19T10:56:19.583-0700 I CONTROL  [initandlisten] allocator: 
tcmalloc
2017-04-19T10:56:19.583-0700 I CONTROL  [initandlisten] modules: none
2017-04-19T10:56:19.584-0700 I CONTROL  [initandlisten] build 
environment:
2017-04-19T10:56:19.584-0700 I CONTROL  [initandlisten]     distarch: 
x86_64
2017-04-19T10:56:19.584-0700 I CONTROL  [initandlisten]     
target_arch: x86_64
2017-04-19T10:56:19.584-0700 I CONTROL  [initandlisten] options: {}
2017-04-19T10:56:19.611-0700 E NETWORK  [initandlisten] listen(): 
bind() failed Address already in use for socket: 0.0.0.0:27017
2017-04-19T10:56:19.612-0700 E NETWORK  [initandlisten]   addr 
already in use
2017-04-19T10:56:19.612-0700 E NETWORK  [initandlisten] Failed to set 
up sockets during startup.
2017-04-19T10:56:19.612-0700 E STORAGE  [initandlisten] Failed to set 
up listener: InternalError: Failed to set up sockets
2017-04-19T10:56:19.612-0700 I NETWORK  [initandlisten] shutdown: 
going to close listening sockets...
2017-04-19T10:56:19.612-0700 I NETWORK  [initandlisten] shutdown: 
going to flush diaglog...
2017-04-19T10:56:19.612-0700 I CONTROL  [initandlisten] now exiting
2017-04-19T10:56:19.612-0700 I CONTROL  [initandlisten] shutting down 
with code:48
bitnami@told-handyman:~$ 

当我运行mongod --port 27018并在localhost上正常运行时,它可以正常工作。我认为让“mongod”正常工作可能是我的托管网站连接到我的mongo服务器的问题的一部分。

总结一下我的问题,我有一个Godaddy托管的网站无法连接到我的Godaddy云Mongo服务器。我可以SSh两者,并在托管网站上安装节点。此外,在服务器上运行mongod会引发错误,但不管怎样,服务器仍然使用我的localhost运行,甚至没有输入该命令。

有谁知道如何解决将server.js文件通过节点连接到我的mongo服务器的问题?我是否遗漏了将托管网站连接到与本地运行不同的托管服务器的任何内容?

这是我在这里的第一个问题。感谢您的时间和帮助。

0 个答案:

没有答案