Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Auth尝试从Fantom脚本连接到MongoDB中托管的MongoDB失败。什么';怎么了?_Mongodb_Mlab_Robo3t_Fantom - Fatal编程技术网

Auth尝试从Fantom脚本连接到MongoDB中托管的MongoDB失败。什么';怎么了?

Auth尝试从Fantom脚本连接到MongoDB中托管的MongoDB失败。什么';怎么了?,mongodb,mlab,robo3t,fantom,Mongodb,Mlab,Robo3t,Fantom,我正在尝试使用v1.0.67脚本连接到托管在中的远程MongoDB v3.0.8。我使用的驱动程序是v1.0.4。连接线为: mongoClient := MongoClient( ActorPool(), `mongodb://mydbuser:mydbpassword@ds0#####.mongolab.com:#####/mymongodb` ) 请注意,占位符mydbuser、mydbpassword和#####被替换为正确的值。当我从shell运行以下命令时,连接成功

我正在尝试使用v1.0.67脚本连接到托管在中的远程MongoDB v3.0.8。我使用的驱动程序是v1.0.4。连接线为:

mongoClient := MongoClient(
    ActorPool(),
    `mongodb://mydbuser:mydbpassword@ds0#####.mongolab.com:#####/mymongodb`
)
请注意,占位符mydbuser、mydbpassword和#####被替换为正确的值。当我从shell运行以下命令时,连接成功:

mongo ds0#####.mongolab.com:#####/mymongodb -u mydbuser -p mydbpassword
但从Fantom脚本中,我得到了以下错误:

afMongo::MongoCmdErr: Command 'authenticate' failed. MongoDB says: auth failed
  afMongo::Operation.runCommand (Operation.fan:36)
  afMongo::Operation.runCommand (Operation.fan)
  afMongo::Connection$.authenticate (Connection.fan:34)
  afMongo::TcpConnection.authenticate (Connection.fan:51)
  afMongo::ConnectionManagerPooled.checkOut (ConnectionManagerPooled.fan:458)
  afMongo::ConnectionManagerPooled.leaseConnection (ConnectionManagerPooled.fan:320)
  afMongo::Cmd.run (Cmd.fan:71)
  afMongo::Database.runCmd (Database.fan:36)
  afMongo::MongoClient.runAdminCmd (MongoClient.fan:107)
  afMongo::MongoClient.buildInfo (MongoClient.fan:64)
  afMongo::MongoClient.startup (MongoClient.fan:119)
  afMongo::MongoClient.makeFromUri$ (MongoClient.fan:41)
  afMongo::MongoClient.makeFromUri$ (MongoClient.fan)
  afMongo::MongoClient.makeFromUri (MongoClient.fan:38)
我也尝试过Robomongo v0.8.4,结果类似:弹出对话框说

  • 已成功连接到ds0。mongolab.com:#####
  • 授权失败
我运行了Fantom脚本以及Robomongo,成功地对本地托管的MongoDB v2.6.3和v3.0.8数据库进行了连接和身份验证

我的Java版本是Java(TM)SE运行时环境(build 1.8.0_05-b13)

我不知道Robomongo或Fantom/afMongo是否依赖于过时的Java或系统库


有什么问题,或者我应该检查什么?

Robomongo v0.8.4和afMongo 1.0.4中的身份验证失败都是由于中的新身份验证机制造成的

afMongo已更新为
SCRAM-SHA-1
over
SASL
。它自动检测Mongo v3数据库并切换身份验证协议,在需要时返回到较旧的
MONGODB-CR
-请参阅

这些更改尚未发布,因为它依赖于一种新方法
Buf.pbk(…)
,该方法仅在Fantom 1.0.68中可用,而Fantom 1.0.68本身尚未发布。Fantom 1.0.68发布后,将立即发布更新的afMongo v1.0.6

您可以从源代码处编译Fantom 1.0.68和afMongo 1.0.6,但老实说,最简单的修复方法(同时)是只使用v2.6 MongoDB数据库

注意,如果需要,GUI客户端可以针对MongoDB v3数据库进行身份验证