-
Bug
-
Resolution: Done
-
Major
-
1.9.0.Final
-
None
-
False
-
None
-
False
Bug report
For bug reports, provide this information, please:
What Debezium connector do you use and what version?
debezium-connector-mongodb version 1.9.0.Final
What is the connector configuration?
{ "name": "test-mongodb-connector", "config": { "connector.class": "io.debezium.connector.mongodb.MongoDbConnector", "mongodb.hosts": "mongos.mongo-cluster:27017", "mongodb.name": "test_mongodb", "collection.include.list": "public.test_collection", "capture.mode": "oplog" } }
What is the captured database version and mode of deployment?
MongoDB v4.2.18, Kubernetes
What behaviour do you expect?
The connector is successfully created when I specify the data to connect to the shared MongoDB cluster.
What behaviour do you see?
The connector creation fails with the error:
{ "error_code": 400, "message": "Connector configuration is invalid and contains the following 1 error(s):\nUnable to connect: Command failed with error 20 (IllegalOperation): 'Can't use 'local' database through mongos' on server mongos.mongo-cluster:27017. The full response is {\"ok\": 0.0, \"errmsg\": \"Can't use 'local' database through mongos\", \"code\": 20, \"codeName\": \"IllegalOperation\", \"operationTime\": {\"$timestamp\": {\"t\": 1650033077, \"i\": 2}}, \"$clusterTime\": {\"clusterTime\": {\"$timestamp\": {\"t\": 1650033077, \"i\": 2}}, \"signature\": {\"hash\": {\"$binary\": {\"base64\": \"YCO98zagOHfEzh2/tdz9tdYLnIw=\", \"subType\": \"00\"}}, \"keyId\": 7079052315168079876}}}\nYou can also find the above list of errors at the endpoint `/connector-plugins/{connectorType}/config/validate`" }
Do you see the same behaviour using the latest released Debezium version?
Yes
Implementation ideas (optional)
I suggest using "config" database if the database exists, otherwise, use "local" database to get MongoDB version during connector validation.