Linux DSN Configuration
This section describes how to set up ODBC connectivity and configure DSNs on several Linux distributions: Debian-based systems, like Ubuntu, and Red Hat Linux platforms, like Red Hat Enterprise Linux (RHEL) and Fedora.
Minimum Linux Versions
Here are the minimum supported versions for Red Hat-based and Debian-based systems:
OS | Min. Version |
Ubuntu | 18.04 |
Debian | 10 |
RHEL | 8 |
Fedora | 28 |
SUSE | 15 |
Installing the Driver Dependencies
Run the following commands as root or with sudo to install the necessary dependencies:
- Debian/Ubuntu:
apt-get install libc6 libstdc++6 zlib1g libgcc1
- RHEL/Fedora:
yum install glibc libstdc++ zlib libgcc
Installing the Driver
You can use standard package management systems to install the driver.
On Debian-based systems, like Ubuntu, run the following command with root or sudo:
dpkg -i /path/to/driver/setup/MongoDBODBCDriverforUnix.deb
On systems that support the RPM package format, run the following command with root or sudo:
rpm -ivh /path/to/driver/MongoDBODBCDriverforUnix.rpm
Licensing the Driver
Run the following commands to license the driver. To activate a trial, omit the <key> input.
cd /opt/cdata/cdata-odbc-driver-for-mongodb/bin/
sudo ./install-license.sh <key>
Connecting through the Driver Manager
The driver manager loads the driver and passes function calls from the application to the driver. You need to register the driver with the driver manager and you define DSNs in the driver manager's configuration files.
The driver installation registers the driver with the unixODBC driver manager and creates a system DSN. The unixODBC driver manager can be used from Python and from many other applications. Your application may embed another driver manager.
Creating the DSN
See Using unixODBC to install unixODBC and configure DSNs. See Using the DataDirect Driver Manager to create a DSN to connect to OBIEE, Informatica, and SAS.
Connecting to MongoDB
Set the following connection properties to connect to a single MongoDB instance:
- Server: Set this to the name or address of the server your MongoDB instance is running on. You can specify the port here or in Port.
- Database: Set this to the database you want to read from and write to.
Connecting to MongoDB Using DNS Seed Lists
To connect using DNS seed lists- Server: Set this to "mongodb+srv://"" + the name of the server your MongoDB instance is running on. You can specify the port here or in Port.
- Database: Set this to the database you want to read from and write to.
- DNSServer: Set this to the hostname of a DNSServer that can resolve the necessary DNS entries.
Connecting to Replica Sets
To connect to a replica set, set the following in addition to the preceding connection properties:
- ReplicaSet: Set this to a comma-separated list of secondary servers in the replica set, specified by address and port.
- SlaveOK: Set this to true if you want to read from secondary (slave) servers.
- ReadPreference: Set this to fine-tune how the driver reads from secondary servers.
Securing MongoDB Connections
You can set UseSSL to negotiate SSL/TLS encryption when you connect.
Authenticating MongoDB Connections
Supported AuthScheme types (MONGODB-CR,SCRAM-SHA-1,SCRAM-SHA-256,PLAIN,GSSAPI) are challenge-response authentication and LDAP.
Challenge-Response
In challenge-response authentication, the User and Password properties correspond to a username and password stored in a MongoDB database. If you want to connect to data from one database and authenticate to another database, set both Database and AuthDatabase.
LDAP
To use LDAP authentication, set AuthDatabase to "$external" and set AuthScheme to PLAIN. This value specifies the SASL PLAIN mechanism; note that this mechanism transmits credentials over plaintext, so it is not suitable for use without TLS/SSL on untrusted networks.
X.509 Certificates
Set AuthScheme to X509 to use X.509 certificate authentication.
Connecting to an Amazon DocumentDB Cluster
Before you can connect to Amazon DocumentDB, you will first need to, ensure your Amazon DocumentDB cluster and the EC2 instance containing the mongo shell are currently running.
Next, configure an SSH tunnel to the EC2 instance as follows.
- From the AWS management console, select Services -> Database -> Amazon DocumentDB. From the DocumentDB management page, select Clusters, then click your cluster.
- Under the Connect section, note the --host value and its port found in the sample connection string.
- Navigate to Services -> Compute -> EC2. Select Running instances.
- Select your instance, then click the Connect button.
- Under the Example section, note the value identifying the instance and user, shown in the form <ami_username>@<Public DNS>
- In your preferred SSH client, establish a connection to your EC2 instance using the Host Name from the EC2 instance's Connect page (username@publicDNS) and Port 22.
- Provide your EC2 instance's private key file (in Putty, you will need to convert the keys from .pem to .ppk) for authentication.
- Configure an SSH tunnel using the port and host name from the DocumentDB cluster page.
- Establish the connection to the EC2 virtual machine.
Specify the following to connect to the DocumentDB cluster.
- Server: Set this to the machine name which is hosting the SSH tunnel.
- Port: Set this to the port the SSH tunnel is hosted on.
- User: Set this to the master username used to provision the DocumentDB cluster.
- Password: Set this to the master password set when provisioning the DocumentDB cluster.
- UseSSL: Set this to true.
- UseFindAPI Set this to true.
Connecting to CosmosDB with the MongoDB API
To obtain the connection string needed to connect to a Cosmos DB account using the MongoDB API, log in to the Azure Portal, select Azure Cosmos DB, and select your account. In the Settings section, click Connection String and set the following values.
- Server: Set this to the Host value, the FQDN of the server provisioned for your account. You can also specify the port here or in Port.
- Port: Set this to the port.
- Database: Set this to the database you want to read from and write to.
- User: Set this to the database user.
- Password: Set this to the user's password.
Set the Driver Encoding
The ODBC drivers need to specify which encoding to use with the ODBC Driver Manager. By default, the CData ODBC Drivers for Unix are configured to use UTF-16 which is compatible with unixODBC, but other Driver Managers may require alternative encoding.
Alternatively, if you are using the ODBC driver from an application that uses the ANSI ODBC API it may be necessary to set the ANSI code page. For example, to import Japanese characters in an ANSI application, you can specify the code page in the config file '/opt/cdata/cdata-odbc-driver-for-mongodb/lib/cdata.odbc.mongodb.ini':
[Driver]
AnsiCodePage = 932