我一直试图从另一台机器访问我的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解决了该问题。

07-24 09:21