Cette page n'est pas encore disponible dans votre langue. Nous nous efforçons d'ajouter d'autres langues. Nous vous remercions de votre compréhension.

On this page

Python

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

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
NOTE:
  • 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.
Feedback

Feedback

Feedback

0/500

Selected Content

Submit selected content with the feedback