Updated on 2022-09-20 GMT+08:00

Python

This section describes how to connect to a replica set instance using Python.

Prerequisites

  1. To connect an ECS to an instance, the ECS must be able to communicate with the DDS instance. You can run the following command to connect to the IP address and port of the instance server to test the network connectivity.

    curl ip:port

    If the message It looks like you are trying to access MongoDB over HTTP on the native driver port is displayed, the network connectivity is normal.

  2. Install Python and third-party installation package pymongo on the ECS. Pymongo 2.8 is recommended.
  3. If SSL is enabled, you need to download the root certificate and upload it to the ECS.

Connection Code

  • Enabling SSL
    import ssl
    from pymongo import MongoClient
    conn_urls="mongodb://rwuser:rwuserpassword@ip:port/{mydb}?authSource=admin&replicaSet=replica"
    connection = MongoClient(conn_urls,connectTimeoutMS=5000,ssl=True, ssl_cert_reqs=ssl.CERT_REQUIRED,ssl_match_hostname=False,ssl_ca_certs=${path to certificate authority file})
    dbs = connection.database_names()
    print "connect database success! database names is %s" % dbs
  • Disabling SSL
    import ssl
    from pymongo import MongoClient
    conn_urls="mongodb://rwuser:rwuserpassword@ip:port/{mydb}?authSource=admin&replicaSet=replica"
    connection = MongoClient(conn_urls,connectTimeoutMS=5000)
    dbs = connection.database_names()
    print "connect database success! database names is %s" % dbs
  • The authentication database in the URL must be admin. That means setting authSource to admin.
  • In SSL mode, you need to manually generate the trustStore file.
  • The authentication database must be admin, and then switch to the service database.