我一直试图从另一台机器访问我的Mongo实例,但我得到了这个错误。我找不到对这个whatsmyuri
错误的许多引用。这就是我从外部机器得到的:
$ mongo <IP_ADDRESS>:27017/youtube_advertising -u user -p password
MongoDB shell version: 3.2.0
connecting to: <IP_ADDRESS>:27017/youtube_advertising
2016-02-19T17:10:02.923+0100 E QUERY [thread1] Error: network error while attempting to run command 'whatsmyuri' on host '<IP_ADDRESS>:27017' :
connect@src/mongo/shell/mongo.js:226:14
@(connect):1:6
exception: connect failed
我已经更改了
/etc/mongod.conf
文件,通过端口27017
打开了连接(使用iptables
)并重新启动了mongo。我可以通过ssh
连接到那台机器。搜索这个,我在mongo上运行了这个命令:
> db.runCommand( { whatsmyuri: 1 } )
{ "you" : "127.0.0.1:36990", "ok" : 1 }
我不知道端口是否正确。以防万一我也从那里打开了连接,但还是什么也没有。
有什么想法吗?
更新
检查
whatsmyuri
,这是我尝试从远程连接时得到的:2016-02-19T10:41:07.292-0600 I NETWORK [initandlisten] connection accepted from <EXT_IP_ADDRESS>:51800 #2 (1 connection now open)
2016-02-19T10:41:07.310-0600 I QUERY [conn2] operation isn't supported: 2010
2016-02-19T10:41:07.310-0600 I - [conn2] Assertion: 16141:cannot translate opcode 2010
最佳答案
检查您的版本。这可能会有所帮助。
我也有同样的问题。在我的例子中,服务器的版本是3.2.0-rc2,而mongo shell的版本是3.2.1。
将服务器升级到3.2.1解决了该问题。