Node.js 节点未连接到托管mongodb服务器,第一次连接时未能连接到服务器
我有一个Godaddy托管的网站,我正试图让节点连接到我的Godaddy Mongo服务器。如果我使用完全相同的文件在mac os localhost上运行,我可以让它连接到托管服务器。 我正在我的托管站点上运行一个MEAN stack应用程序,mongo服务器正在使用bitnami。 当我SSH到我的godaddy托管站点,然后运行Node.js 节点未连接到托管mongodb服务器,第一次连接时未能连接到服务器,node.js,mongodb,server,hosting,Node.js,Mongodb,Server,Hosting,我有一个Godaddy托管的网站,我正试图让节点连接到我的Godaddy Mongo服务器。如果我使用完全相同的文件在mac os localhost上运行,我可以让它连接到托管服务器。 我正在我的托管站点上运行一个MEAN stack应用程序,mongo服务器正在使用bitnami。 当我SSH到我的godaddy托管站点,然后运行node server/server.js时,会出现以下错误: toldhandyman@a2plcpnl0843 [~/public_html]$ node se
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)
当我在我的托管站点上使用相同的代码时,它给了我以前的错误
MongoError:无法连接到上的服务器[45.40.179.118:27017]
第一次连接[MongoError:connect Econrefuse45.40.179.118:27017]
。
Godaddy服务器正在使用Bitnami mongodb。我试着浏览他们的文档、godaddy支持和许多其他地方。我试着把端口改成27018。在bitnami@told-杂工:/opt/bitnami/mongodb/mongodb.conf
在处理行时也没有帮助:
#bind_ip = 127.0.0.1
#bind_ip = 0.0.0.0
port = 27017
我还尝试为数据库添加不同的用户,并使用这些凭据登录,但这只在localhost上起作用。我还尝试过几次停止服务器并重新启动它。
我已经确保它确实到达dbpath=/data/db
我注意到的另一个问题是,当我使用SSH连接到服务器时,让mongod
在服务器中工作。如果不运行mongod
,我的本地主机就可以与托管服务器连接并正常工作。当我在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
时,它会工作,并在本地主机上正常运行。我认为让“mongod”正常工作可能是让我的托管站点连接到我的mongo服务器的问题的一部分
总结一下我的问题,我有一个Godaddy托管的网站无法连接到我的Godaddy cloud Mongo服务器。我可以SSh连接到这两个节点,并在托管站点上安装节点。在服务器上运行mongod
也会抛出一个错误,但不知何故,服务器仍然使用我的本地主机运行,甚至没有输入该命令
有人知道如何解决通过节点将server.js文件连接到mongo服务器的问题吗?我是否遗漏了将托管网站连接到托管服务器(与本地运行两者不同)的任何内容
这是我的第一个问题。感谢您的时间和帮助。欢迎来到SO!你的帖子很长。很好,你已经非常详细了,但我觉得你可以对你的问题和问题更简洁一点。关于你的问题,我猜是防火墙的问题。因此,请验证客户端和服务器之间的端口是否打开。请尝试通过Godaddy防火墙打开端口27017。
#bind_ip = 127.0.0.1
#bind_ip = 0.0.0.0
port = 27017
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:~$