Herstellen einer Verbindung zur MongoDB-Datenbank (FireDAC)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Datenbankkonnektivität (FireDAC)

In diesem Thema wird beschrieben, wie eine Verbindung zu MongoDB mit FireDAC hergestellt wird.

MongoDB ist eine Open-Source-NoSQL-Dokumentdatenbank.

Beziehen von MongoDB

Sie können MongoDB von der offiziellen Website unter www.mongodb.org/downloads (EN) herunterladen.

Unterstützte Versionen

Der FireDAC-Treiber für MongoDB unterstützt MongoDB Version 3.0 und höher.

Client-Software

Windows-Client-Software

FireDAC benötigt den "MongoDB C-Treiber" für die Verbindung zum MongoDB-Server. Die RAD Studio-Installation enthält die folgenden vorcompilierten Bibliotheken:  :

  • libbson-1.0.dll: eine BSON-Bibliothek
  • libmongoc-1.0.dll: ein MongoDB-C-Treiber.

Die Clientbibliotheken für die Verbindung zum MongoDB-Server sind in der RAD Studio-Installation enthalten:

  • C:\Program Files (x86)\Embarcadero\Studio\21.0\Redist\Win32: Enthält 32-Bit-Versionen von libbson-1.0.dll und libmongoc-1.0.dll
    • Verwenden Sie diese für Win32-Desktop-Anwendungen oder für die Verbindung zu MongoDB beim Entwurf.
  • C:\Program Files (x86)\Embarcadero\Studio\21.0\Redist\Win64: Enthält 64-Bit-Versionen von libbson-1.0.dll und libmongoc-1.0.dll
    • Verwenden Sie diese für Win64-Desktop-Anwendungen.

Speichern Sie die erforderlichen Bibliotheken in einem der folgenden Verzeichnisse:

  • In einem in der Umgebungsvariable PATH aufgeführten Ordner (z. B. <Windows>\SYSTEM32).
  • In Ihrem Anwendungs-EXE-Ordner.
  • In einem beliebigen anderen Ordner, den Sie in der Datei FDDrivers.ini angeben müssen:
[Mongo]
VendorLib=<folder>\libmongoc-1.0.dll

Wenn die MongoDB-Clientbibliothek nicht ordnungsgemäß installiert wurde, wird beim Verbindungsversuch eine Exception ausgelöst:

[FireDAC][Phys][Mongo]-314. Laden der Herstellerbibliothek [libmongoc-1.0.dll] nicht möglich. Das angegebene Modul wurde nicht gefunden. Hinweis: Überprüfen Sie, ob die Datei sich im PATH oder in Anwendungs-EXE-Verzeichnissen befindet und eine x86-Bitanzahl hat.

macOS-Client-Software

FireDAC benötigt die folgenden dynamischen Bibliotheken für die Verbindung zum MongoDB-Server:

  • libbson-1.0.0.dylib
  • libmongoc-1.0.0.dylib

Diese Bibliotheken sind in der RAD Studio-Installation im Ordner C:\Program Files (x86)\Embarcadero\Studio\21.0\Redist\osx32 enthalten.

Speichern Sie sie in /usr/local.

Linux-Client-Software

FireDAC benötigt die mongo-c-driver-Bibliothek. So installieren Sie sie:

  1. Auf Ubuntu Server 16.04 LTS, führen Sie aus:
    sudo apt-get install libmongoc
    sudo ln -s /usr/lib/x86_64-linux-gnu/libmongoc-1.0.so.0 /usr/lib/x86_64-linux-gnu/libmongoc-1.0.so
    sudo ln -s /usr/lib/x86_64-linux-gnu/libbson-1.0.so.0 /usr/lib/x86_64-linux-gnu/libbson-1.0.so
    
  2. Auf Red Hat Enterprise Linux 7, build mongo-c-driver from source (EN), installieren Sie ihn und führen Sie aus:
    sudo ln -s /usr/lib64/libmongoc-1.0.so.0 /usr/lib/x86_64-linux-gnu/libmongoc-1.0.so
    sudo ln -s /usr/lib64/libbson-1.0.so.0 /usr/lib/x86_64-linux-gnu/libbson-1.0.so
    

Treibereinbindung

So binden Sie den Treiber ein:

Verbindungsdefinitionsparameter

DriverID=Mongo

Parameter Beschreibung Beispielwert
Server Die TCP/IP-Adresse oder der Host-Name des Servers, auf dem der MongoDB-Datenbankprozess ausgeführt wird. 127.0.0.1
Port Der TCP/IP-Port, über den der MongoDB-Datenbankprozess empfängt. 27017
Database Name der aktuellen Datenbank für die Verbindung. Wenn "Database" nicht angegeben ist, wird keine aktuelle Datenbank eingerichtet. test
User_Name Die MongoDB-Benutzer-ID.
Password Das MongoDB-Benutzerpasswort.
UseSSL

Geben Sie True an, um eine SSL-Verbindung zu aktivieren. Standardmäßig ist dieser Parameter auf False gesetzt. Wenn Sie "UseSSL=True" angeben, müssen Sie zusätzlich die Verbindungsdefinitionsparameter angeben:

  • SSLPEMKeyFile – ist der Pfadname zu der .pem-Datei, die das SSL-Zertifikat und den Schlüssel enthält.
  • SSLCAFile – ist der Pfadname zu der .pem-Datei, die das Zertifikat von der Zertifizierungsinstanz (Certificate Authority, CA) enthält.
  • SSLPEMKeyPassword – wenn die Client-Zertifikat-Schlüsseldatei verschlüsselt ist.

Weitere Einzelheiten finden Sie in der MongoDB-Dokumentation:

True
LoginTimeout Steuert die Dauer in Sekunden bis zur Zeitüberschreitung einer Anwendung beim Versuch, eine Verbindung herzustellen. 0
ReadTimeout Die Zeitüberschreitung in Sekunden für Versuche vom Server zu lesen. Jeder Versuch verwendet diesen Zeitüberschreitungswert und bei Bedarf sind Neuversuche möglich, sodass der effektive Gesamt-Zeitüberschreitungswert dreimal höher als der Optionswert ist. 300
MongoAdvanced Weitere MongoDB-Datenbankverbindungsoptionen:

Weitere Einzelheiten finden Sie in der MongoDB-Dokumentation:

Anwendungsfälle

Verwenden einer sicheren Verbindung

Setzen Sie für die Verwendung der TLS/SSL-Verschlüsselung den Parameter UseSSL auf den Wert True, und geben Sie dann die Parameter SSLPEMKeyFile und SSLCAFile wie folgt an:


DriverID=Mongo
Server=<ip_address>
Port=27017
Database=test
UseSSL=True
SSLCAFile=ca-cert.pem // The file that contains the certificate from the CA (Certificate Authority).
SSLPEMKeyFile=client-key.pem and client-cert.pem // The file that contains the SSL certificate and key.

Sie können auch sslPEMKeyPassword verwenden, wenn die Client-Zertifikat-Schlüsseldatei verschlüsselt ist. Weitere Informationen finden Sie unter TLS/SSL Configuration for Client (EN).

Hinweis: Der MongoDB C-Treiber wurde ohne SSL-Unterstützung compiliert. Wenn für Ihre Anwendung SSL erforderlich ist, müssen Sie den MongoDB C-Treiber selbst compilieren und die zusätzlich benötigten Bibliotheken bereitstellen. Für diese Bibliotheken sind möglicherweise die OpenSSL- und Microsoft Visual C++-Laufzeitbibliotheken erforderlich.

Weitere Anwendungsfälle

  • Herstellen einer Verbindung zu einem lokal ausgeführtem Server, der über den Standard-Port (27017) empfängt:


DriverID=Mongo
Database=test
  • Herstellen einer Verbindung zu einem lokal ausgeführtem Server, der an Nicht-Standard-Port mit aktivierter Authentifizierung empfängt :


DriverID=Mongo
Server=test
Port=<port_number>
Database=test
User_Name=admin
Password=<admin_password>

Siehe auch