MongoDB连接错误

MongoDB连接错误,mongodb,delphi,delphi-10.1-berlin,Mongodb,Delphi,Delphi 10.1 Berlin,当我尝试使用FDConnection连接到mongodb时(设置数据库、用户名、密码、服务器和端口值后),我得到[FireDAC][Phys][Mongo]身份验证机制“SCRAM-SHA-1”不受支持。错误 如果我将UseSSL选项设置为True,然后这次重试,我会得到[FireDAC][Phys][Mongo]此版本的Mongo-c-driver中未启用SSL。错误 在同一台计算机中,我可以使用MongoBooster(具有基本身份验证)连接到MongoDBSCRAM-SHA-1身份验证机制

当我尝试使用FDConnection连接到mongodb时(设置数据库、用户名、密码、服务器和端口值后),我得到
[FireDAC][Phys][Mongo]身份验证机制“SCRAM-SHA-1”不受支持。
错误

如果我将UseSSL选项设置为True,然后这次重试,我会得到
[FireDAC][Phys][Mongo]此版本的Mongo-c-driver中未启用SSL。
错误

在同一台计算机中,我可以使用MongoBooster(具有基本身份验证)连接到MongoDB

SCRAM-SHA-1身份验证机制 升级至最新版本(或至少1.1.0版),因为您使用的版本不支持身份验证机制(这是驱动程序异常所说的)。由于它在MongoDB3.0中被引入并成为默认的身份验证机制,您必须对新的DBMS使用旧的驱动程序

MONGODB-CR认证机制 出于上述原因,升级至最新版本(或至少版本1.1.0)。由于不再是默认的身份验证机制,您需要通过设置为显式指定它

因此,如果需要基本身份验证,则需要在参数中指定:

...
FDConnection1.Params.Add('MongoAdvanced=authMechanism=MONGODB-CR');
FDConnection1.Connected := True;
关于过时司机的证据 以下链接指向相应的源代码行,您可以在其中找到有关过时驱动程序的证据:

  • -不支持认证机制“SCRAM-SHA-1”,由于缺少SCRAM-SHA-1机制,将返回消息

  • -不会显示此类信息,因为存在紧急停堆-SHA-1机制

  • -在当前版本中,消息听起来未知身份验证机制

因此,认证机制“SCRAM-SHA-1”不受支持,您可以通过1.1.0以上的驱动程序版本获得该消息。从最新的稳定源生成驱动程序,并将库路径设置为物理驱动程序链接组件的属性

类似这样的内容(不要被库名称中的版本弄糊涂,作者将其保留为过时版本,但将来可能会更改):

SCRAM-SHA-1认证机制 升级至最新版本(或至少1.1.0版),因为您使用的版本不支持身份验证机制(这是驱动程序异常所说的)。由于它在MongoDB3.0中被引入并成为默认的身份验证机制,您必须对新的DBMS使用旧的驱动程序

MONGODB-CR认证机制 出于上述原因,升级至最新版本(或至少版本1.1.0)。由于不再是默认的身份验证机制,您需要通过设置为显式指定它

因此,如果需要基本身份验证,则需要在参数中指定:

...
FDConnection1.Params.Add('MongoAdvanced=authMechanism=MONGODB-CR');
FDConnection1.Connected := True;
关于过时司机的证据 以下链接指向相应的源代码行,您可以在其中找到有关过时驱动程序的证据:

  • -不支持认证机制“SCRAM-SHA-1”,由于缺少SCRAM-SHA-1机制,将返回消息

  • -不会显示此类信息,因为存在紧急停堆-SHA-1机制

  • -在当前版本中,消息听起来未知身份验证机制

因此,认证机制“SCRAM-SHA-1”不受支持,您可以通过1.1.0以上的驱动程序版本获得该消息。从最新的稳定源生成驱动程序,并将库路径设置为物理驱动程序链接组件的属性

类似这样的内容(不要被库名称中的版本弄糊涂,作者将其保留为过时版本,但将来可能会更改):


关于我已经构建了mongodb驱动程序,并在“C:\mongo-C-driver\bin”目录下创建了4个dll。在我的exe下手动复制并运行应用程序
[FireDAC][Phys][Mongo]身份验证机制“SCRAM-SHA-1”不受支持。
错误仍然存在。如果我尝试您的
参数。添加
建议
[FireDAC][Phys][Mongo]无法验证凭据。
出现错误:(您是否正确更新了
TFDPhysMongoDriverLink
VendorLib
属性?现在我尝试用现有的旧文件设置VendorLib,因为只有4个DLL(concrt140,libbson-1.0,msvcp140,vcruntime140)在
C:\mongo-C-driver\bin
下,同样的错误消息不断出现。我们正在讨论libmongoc-1.0.dll库(不要被版本弄糊涂)。指向该库的路径必须设置为
VendorLib
属性。可以很容易地证明您没有使用最新的驱动程序,没有SCRAM-SHA-1(因此消息),添加了SCRAM-SHA-1(将导致没有此类消息),……消息现在是“未知身份验证机制…”,而不是“不支持身份验证机制”。因此,您必须使用1.1.0以下的版本,其中尚未识别SCRAM-SHA-1。至于您的版本,您似乎只构建了libbson。关于我构建了mongodb驱动程序,并在“C:\mongo-C-driver\bin”目录下创建了4个dll。在我的exe下手动复制它们,然后运行应用程序
[FireDAC][Phys][mongo]身份验证机制“SCRAM-SHA-1”不受支持。
错误仍然存在。如果我尝试您的
参数,添加
建议
[FireDAC][Phys][Mongo]无法对凭据进行身份验证。
错误:(您是否正确更新了
TFDPhysMongoDriverLink
VendorLib
属性?现在我尝试使用现有的旧文件设置VendorLib,因为只有4个DLL(concrt140、libbson-1.0、msvcp140、vcruntime140)在
C:\mongo-C-driver\bin
下,同样的错误消息不断出现。我们谈论的是libmongoc-1.0.dll库(不要被版本弄糊涂)。该库的路径必须设置为
VendorLib
属性。可以很容易地证明您没有使用最新的驱动程序,没有SCRAM-SHA-1(因此消息),增加了紧急停堆-SHA-1(不会导致此类信息),。。