本文介绍使用云数据库MongoDB时出现的错误信息、异常情况,其可能的原因以及解决措施。
错误信息 | 说明 |
错误信息 | 说明 |
Specified parameter AccountDescription is not valid. | 备份恢复至新实例时,请检查新实例名称是否符合限制条件。 |
Shard total number is out of range. | 恢复分片集群到新实例时,请检查新实例的分片数是否和原实例保持一致。 |
| MongoDB不支持降低实例的存储空间。如果需要降低存储空间,您可以通过创建新实例,用新实例替换原实例的方法实现,操作方法请参见其他变配场景及方案。 |
| 仅主节点可以执行写操作,请检查并确认连接地址。通过主节点的连接地址连接数据库实例时,当实例触发主备切换后,主节点地址会发生变化。如需进行读写操作,建议使用高可用地址连接数据库,连接地址说明,请参见: |
Classic network has not been supported, try to use VPC. | 所有保有经典网络类型的MongoDB实例将停止续费、变更实例规格、转换计费方式等操作。详细信息,请参见【通知】云数据库 MongoDB 版下线经典网络。 |
There is not enough resource for your operation. | 实例变配时,目标可用区资源不足。您可以尝试变更为其他规格,或提交工单联系技术支持协助处理。 |
The operation is not permitted due to type of the instance. | 如果您重置密码时报错,请检查实例类型。Serverless实例不支持重置密码,如需修改,请提交工单联系技术支持协助处理。 |
源库的oplog未开启。 | 若您在配置数据迁移任务时失败,请检查实例类型。单节点架构不支持开启oplog,不支持DTS增量迁移,建议配置为全量迁移。 |
MongoDB.Driver.MongoWaitQueueFullException: The wait queue for acquiring a connection to server xxx is full. | MongoDB 驱动程序的等待队列已满,可能由于连接池设置较小或出现高并发请求等原因导致,从而无法提供可用连接。建议您优先检查对应报错程序的连接池配置,例如确保设置了合理的连接池大小,详情请参见如何限制终端的连接数。 若程序侧调整后问题依然存在,您可检查MongoDB实例侧的连接数是否耗尽,排查及解决方法,请参见排查因连接数耗尽导致的数据库连接问题。 |
The Request references an incorrect order sales component. Contact the customer support. | 购买MongoDB实例时,不同可用区的资源支持情况不同,您可以尝试修改可用区、更换实例规格,或提交工单联系技术支持协助处理。 |
User Request was denied due to user flow control. | 为了管理和控制对API的访问,阿里云对API调用频率存在约束限制。您可在配额中心查看、申请扩大API速率配额,具体操作,请参见创建配额提升申请。 |
(TooManyLogicalSessions) Unable to add session into the cache because the number of active sessions is too high. | 并发连接过多时,可能会耗尽可用会话,查看MongoDB实例的连接数及解决方法,请参见排查因连接数耗尽导致的数据库连接问题。 如果连接数未发现异常,您可以通过节点监控功能查看常用资源(例如CPU使用率和内存使用率)的运行情况,确认实例规格大小是否满足业务需求,如果实例规格过小,但负载较高,可在业务低峰期升级配置。查看节点监控的具体操作,请参见节点监控,升级实例规格请参见变更实例配置。 |
| 请检查实例连接地址是否正确,连接地址说明,请参见: |
database config lack of read privileges. | 云数据库MongoDB通过DTS迁移时,源和目标数据库的数据库账号需要具备相应权限,具体权限要求及授权方法,请参见: |
Specified restore time is not valid. | 通过API恢复实例时,请检查恢复时间是否有效,参数格式为yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。例如,北京时间为“2024-11-08 20:00:00”,需要减去8小时转换为UTC时间,对应结果为“2024-11-08T12:00:00Z”。 |
server returned error on SASL authentication step: BSON field 'saslContinue.mechanism' is an unknown field. | 跨版本恢复实例时,身份验证机制不同时会导致认证失败。MongoDB 4.0版本的默认验证机制为SCRAM-SHA-251,MongoDB 5.0及以上版本的默认验证机制为SCRAM-SHA-256。 |
TypeError: db.xxx.find is not a function. | 集合命名可能命中关键词,建议使用 |
createUser failed: Command failed with error xx (Unauthorized): 'not authorized on admin to execute command xxx. | 阿里云账号权限收敛,不再支持创建拥有admin系统库可写权限的账号,以避免向admin系统库写入数据时可能引发的性能抖动问题。创建拥有相关权限的账号,更多信息请参见实例创建时指定的root账号拥有什么权限?。 |
Specified network type does not matched. | 当实例已添加经典安全组,您将无法同时添加专有安全组。 |
Instance's MinorVersion is not supported for this API. | 实例小版本低,建议升级小版本。具体操作及影响,请参见升级数据库小版本。 |
The instance is at the End of Full Support (EOFS) stage. | 该实例版本已经进入EOFS阶段,不支持续费,建议升级大版本。具体操作及影响,请参见升级数据库大版本。 |
The resource is out of usage. | 出现该报错表示创建或变配实例时,资源出现问题。建议您在出现报错时获取相关Request ID,并提交工单联系技术支持处理。 控制台如何获取Request ID,请参见获取Request ID。 |
登录时提示Authentication failed错误
MongoDB的账号是跟数据库(Database)关联的,鉴权时需要指定账号所属的数据库信息。
假设账号和密码都是test,test账号属于admin数据库。
当您使用ConnectionStringURI地址、ReadOnly ConnectionStringURI高可用地址连接数据库时,需要设置authSource
参数指定数据库账号所属的数据库,如果不配置该参数,<database>
会作为鉴权数据库。
示例如下:
mongo mongodb://test:test@<host1>:<port1>,<host2>:<port2>,...,<hostN>:<portN>/<database>?replicaSet=<replicaSet_value>&authSource=admin
或者
mongo mongodb://test:test@<host1>:<port1>,<host2>:<port2>,...,<hostN>:<portN>/admin?replicaSet=<replicaSet_value>
可使用如下命令登录:
mongo --host $myhost --port $myport -u test -p test --authenticationDatabase admin
或者
mongo --host $myhost --port $myport
mongo> use admin
mongo> db.auth("test", "test")
关于连接地址的参数说明,请参见副本集实例连接说明、分片集群实例连接说明。