mak*_*day 8 port remote-access mongodb
我一直试图从另一台机器访问我的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
Run Code Online (Sandbox Code Playgroud)
我已经更改了/etc/mongod.conf文件,通过端口27017(带有iptables)打开了连接,然后重新启动了mongo。我可以通过ssh该机器连接。
搜索这个whatsmyuri,我在mongo上运行了这个命令:
> db.runCommand( { whatsmyuri: 1 } )
{ "you" : "127.0.0.1:36990", "ok" : 1 }
Run Code Online (Sandbox Code Playgroud)
我不知道该36990端口是对还是错。万一我也从那里打开了连接,但还是没有。
有任何想法吗?
检查/var/log/mongodb/mongod.log,这是我尝试从远程连接时得到的信息:
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
Run Code Online (Sandbox Code Playgroud)
检查您的版本。这可能会有所帮助。
我遇到了同样的问题。在我的情况下,服务器版本为3.2.0-rc2,而mongo shell版本为3.2.1。
将服务器升级到3.2.1可以解决此问题。
小智 5
当我在同一台 Windows 10 机器上运行两个版本(3.4 和 4.2)的 MongoDB 时,这个问题困扰着我。我运行了 v3.4 mongod,控制台输出中没有提到任何问题,但是运行 v3.4 mongo shell 产生了上述错误。检查任务管理器,结果发现有一个 MongoDB 进程(我不确定,但我认为它适用于 v4.2)正在运行。通过任务管理器结束该过程后,v3.4 mongo shell 运行良好,没有错误。